void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_8);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_ResetBits(GPIOA,GPIO_Pin_4);
}
#include "led.h"
#include "delay.h"
#include "sys.h"
int main(void)
{
delay_init();
LED_Init();
while(1)
{
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)==1)//若连接红外的管脚输出高电平,则gpioA_8的LED灯亮
GPIO_ResetBits(GPIOA,GPIO_Pin_8);/
else
GPIO_SetBits(GPIOA,GPIO_Pin_8)//否则,灯熄灭
}
}
当红外探头对准人时,用来检测高电平的灯GPIOA_Pin_8一直在闪,而且对着人的时,灯不会立马亮
|