灵动微MM32F003硬件最小系统 --- 按键扫描例程解析【9

2020-11-07  本文已影响0人  黄开通

修改了官方的按键扫描例程,该例程实现按下按键,控制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))
上一篇 下一篇

猜你喜欢

热点阅读