中级会员
 
- 积分
- 412
- 金钱
- 412
- 注册时间
- 2018-7-11
- 在线时间
- 42 小时
|

楼主 |
发表于 2020-1-7 20:49:01
|
显示全部楼层
这是头文件里的宏定义:
#define La GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5)
#define Lb GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_4)
#define Lc GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_3)
#define Ra GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_15)
#define Rb GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_11)
#define Rc GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8)
void InfraredIOInit(void)//红外IO口初始化
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //ʹÄÜGPIOBʱÖÓ
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //ʹÄÜGPIOBʱÖÓ
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //PB0 ÊäÈë
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_11 | GPIO_Pin_15;//
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 ; //
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
识别程序:
if(Lc)
direct = -10;
else if(Lb)
direct = -6;
else if(La)
direct = -4;
else if(Rc)
direct = 10;
else if(Rb)
direct = 6;
else if(Ra)
direct = 4;
else
direct = 0.0; |
|