4X4矩阵键盘扫描程序

本文介绍了4X4矩阵键盘的扫描程序,详细阐述了行线和列线的配置,以及如何通过置位行线并读取列线来确定按键。电路设计中需要注意上拉电阻的使用,并且要通过配置芯片寄存器将引脚设为GPIO口。测试代码以DM365芯片为例,展示了如何通过字符设备驱动进行GPIO操作。
摘要由CSDN通过智能技术生成

4X4矩阵键盘扫描:

1. 4根行线的GIO均设为Output,根列线的GIO均设为Input;

2. 4根行线的GIO分别置为0111、1011、1101、1110,读逐一读取列线GIO的值,可确定是哪一个按键;


电路图如下:


注意:

1. 图中用作输入的GIO,一定要有一个上拉电阻。

2. 芯片中的每一个引脚是否用作了GPIO口来用,需配置芯片的寄存器,使引脚当作GPIO口来使用,才会有效。


测试代码如下:

#define KEY_GIO_ROW_1	37
#define KEY_GIO_ROW_2	33
#define KEY_GIO_ROW_3	32
#define KEY_GIO_ROW_4	35
#define KEY_GIO_COL_1	22
#define KEY_GIO_COL_2	23
#define KEY_GIO_COL_3	24
#define KEY_GIO_COL_4	36
int scanKey()
{
	int keyValue = 0;
	int col1Value=0,col2Value=0,col3Value=0,col4Value=0,row1Value=0,row2Value=0,row3Value=0,row4Value=0;
	static int press1=0,press2=0,press3=0,press4=0;
	static int press5=0,press6=0,press7=0,press8=0;
	static int press9=0,press10=0,press11=0,press12=0;
	static int press13=0,press14=0,press15=0,press16=0;

	dm3
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值