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

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

作者: 黄开通 | 来源:发表于2020-11-07 15:22 被阅读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))
    

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/puzfbktx.html