4*4键盘程序代码 基于STM32
这是自己写的扫描第一行按键的程序代码。
PE的位8~位11设置为下拉输入。
PE的位12~位15设置为推挽输出
其中PE的位11是4*4键盘的第一列,PE的为键盘的第一行。
先将第一行设置为高电平,检测列中是否有高电平
u8 KEY_Scan(u8 mode)
{
staticu8 key_up=1;//按键按松开标志
if(mode)key_up=1; //支持连按
GPIO_SetBits(GPIOE,GPIO_Pin_15);
if(key_up&&( (GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_8))
||(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_9))
||(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_10))
||(GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_11)) ) )
{
delay_ms(10);//去抖动
key_up=0;
if(GPIO_ReadInputDataBit(GPIOE, GPIO_Pin_8) )return 10;