根据教程我定义了一个Key_Scan 函数:
[C] 纯文本查看 复制代码uint8_t Key_Scan(GPIO_TypeDef* GPIOX,uint16_t GPIO_Pin)
{
if(GPIO_ReadInputDataBit(GPIOX,GPIO_Pin) == KEY_ON){
//松手检测
while(GPIO_ReadInputDataBit(GPIOX,GPIO_Pin) == KEY_ON);
return KEY_ON;
}else
return KEY_OFF;
}
然后我需要获取KEY1 和 KEY2 的值,检测到按键按下点亮LED,于是使用了以下的宏定义
[C] 纯文本查看 复制代码
#define KEY1 Key_Scan(GPIOA,GPIO_Pin_0)
#define KEY2 Key_Scan(GPIOC,GPIO_Pin_13)
发现并不能获取到相关按键的值,LED没有反应,所以我尝试了直接使用GPIO_ReadInputDataBit()函数
[C] 纯文本查看 复制代码
#define KEY1 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)
#define KEY2 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13)
发现可以获取到相关按键的值,LED点亮正常。
这是哪出了问题呢?程序编译没有报错。 |