简单的按键没有用到中断,所以还是简单的GPIO引脚的操作,注意:
(1)按键操作是通过对引脚电平的检测轮询来判断是否按下键。
(2)和LED GPIO配置基本相同,不过要把引脚的模式配置为悬浮输入:GPIO_InitStructure.GPIO_Mode= GPIO_Mode_IN_FLOATING;
(3)判断是否按下就是检测GPIO输入寄存器的值是否为1.
定义:#define KEY_ON 1
#define KEY_OFF 0
GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == KEY_ON;
(4) 采用查询的方式:
int main(void)
{
// LED config
Led_GPIO_config();
// key config
Key_GPIO_Config();
while(1)
{
//GPIO_SetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN);
//GPIO_ResetBits(LED_G_GPIO_PORT, LED_G_GPIO_PIN);
if ( Key_Scan(KEY1_GPIO_PORT,KEY1_GPIO_PIN) == KEY_ON ){
LED1_TOGGLE;
}
if ( Key_Scan(KEY2_GPIO_PORT,KEY2_GPIO_PIN) == KEY_ON ) {
LED2_TOGGLE;
}
}
}