初始化按键后,就可以通过检测对应引脚的电平来判断按键状态了。在这里定义了一个Key_Scan函数用于扫描按键状态。GPIO引脚的输入电平可通过读取IDR寄存器对应的数据位来感知,而STM32标准库提供了库函数GPIO_Read Input Data Bit来获取位状态,该函数输入GPIO端口及引脚号,返回该引脚的电平状态,高电平返回1,低电平返回0。Key_Scan函数中用GPIO_Read Input Data Bit的返回值与自定义的宏KEY_ON对比,若检测到按键按下,则使用while循环持续检测按键状态,直到按键释放,按键释放后Key_Scan函数返回一个KEY_ON值;若没有检测到按键按下,则函数直接返回KEY_OFF。若按键的硬件没有做消抖处理,则需要在这个Key_Scan函数中做软件滤波,防止波纹抖动引起误触发。