修改了官方的按键扫描例程,该例程实现按下按键,控制LED指示灯状态翻转的功能。
1 按键扫描函数
u8 KEY_Scan(u8 mode)
{
if(mode) {
key_up = 1;
}
if(key_up && (KEY1 == 0)) {
delay_ms(10);
key_up = 0;
if(KEY1 == 0) {
return KEY1_PRES;
}
} else if(KEY1 == 1) {
key_up = 1;
}
return 0;
}
2 main函数
int main(void)
{
delay_init();
LED_Init();
KEY_Init();
while(1) {
t = KEY_Scan(0);
if(t == KEY1_PRES) {
LED1_TOGGLE();
} else {
delay_ms(10);
}
}
}
3 GPIO输出翻转宏
#define LED1_TOGGLE() (GPIO_ReadOutputDataBit(LED1_Port,LED1_Pin))?(GPIO_ResetBits(LED1_Port,LED1_Pin)):(GPIO_SetBits(LED1_Port,LED1_Pin))
网友评论