配置GPIOA的前四个引脚(GPIO_Pin_0至GPIO_Pin_3)为推挽输出模式,用于键盘行线的扫描。 设置GPIOA的后四个引脚(GPIO_Pin_4至GPIO_Pin_7)为上拉输入模式,用于检测键盘列线的状态。 //第一组GPIO_InitStructre.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3; GPIO_InitStructre.GPIO_Mode...
{case0x07://0111 判断为该列第1行的按键按下return1;case0x0b://1011 判断为该列第2行的按键按下return2;case0x0d://1101 判断为该列第3行的按键按下return3;case0x0e://1110 判断为该列第4行的按键按下return4;default:return0; } }elsereturn0; }elsereturn0; } 这个函数,可以判断哪一行有按...
4X4小键盘一共八个引脚,低4位设置为输出,高4位设置为输入。高四位启用内部上拉电阻,低四位平时设置...
060)基于STM32单片机的1×4矩阵键盘实验 代做单片机毕业设计 22 0 666)基于51单片机的交通灯设计(数码管显示) 代做单片机毕业设计 158 0 008)基于STM32单片机的无创血糖仪设计 代做单片机毕业设计 34 0 079)基于51单片机万年历设计(DS1302 DS18B20 12864显示 带闹钟温度) 代做单片机毕业设计 181 0 ...
GPIOStru.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7; //因为上面定义引脚为输出时,已经打开整个GPIOA的时钟了,所以此处不再需要函数RCC_APB2PeriphClockCmd()来打开时钟了。 GPIO_Init(GPIOA,&GPIOStru); } int key(void) //实现矩阵键盘。返回值为,各按键的键值,此键值由用户自己定义...
买了个矩阵键盘,原理图如下: 左边的为行,右边的为列,扫描的原理大概如下:行为输出,列为输入。先让第一行为0,其他行为高,读取列的电平。 key.c如下: #include "key.h" #include "delay.h" //键值表 /* 1:0x01 2:0x02 3:0x03 A:0x04
2、代码 接线:4*4矩阵键盘,行从上至下依此接B5、B6、B7、B8;列从左至右依此接A1、A2、A3、A4; 按键从左至右,从上至下,依此编号为1、2、3、…、16 Key.h #ifndef __KEY_H #define __KEY_H #include "stm32f10x.h" voiddelay_us(uint32_tdelay_us); ...
GPIO_ResetBits(GPIOA,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GFIO_Pin_7); } /*---矩阵键盘扫描---*功能:扫描矩阵 键盘,并返回键值 *参数: *输入:无 *返回:有键按下返回该键值 *无键按下时则返回0 ...*/ u8Read_KeyValue(void) { u8KeyValue=0; if(...