gpio stm8 管脚 配置工具_Android矩阵键盘配置方法

本文档详细介绍了如何配置STM8 GPIO管脚用于矩阵键盘,并以msm8909平台为例,提供了配置步骤。内容包括理解原理图、确定keymap、设置GPIO管脚以及编译选项调整。
摘要由CSDN通过智能技术生成

文档说明

本文档以msm8909平台为例,结合实际的原理图,说明矩阵键盘配置方法。

原理图

下面是一个键盘的原理图,4*5的矩阵键盘,行号为ROW0~3,列号为COL0~4。

f071f991db3213b00d56c310ae598e8a.png

嗯,键盘图画的很漂亮。

相关文档

OK,我们开始看看相关的文档:

kernel/Documentation/devicetree/bindings/input/gpio-matrix-keypad.txt

kernel/Documentation/devicetree/bindings/input/matrix-keymap.txt

打开gpio-matrix-keypad.txt:

bc183f395bda0b7a215bc575ac293ee9.png

把example这部分内容,原样copy到 kernel/arch/arm/boot/dts/qcom/sc806-evk/msm8909-mtp.dtsi

修改:

debounce-delay-ms = <200>

col-scan-delay-us = <200>

上述两个值,根据实际按键效果自行调整,避免误判和错判。

matrix-keymap.txt 对 linux,keymap做了解释:

e6b3d6b5376a3304463f54e53ab82293.png

以某个值为例:

7daf7e5feabc3c5e5cbf6fd466cae906.png

如何确定keymap

以原理图的KEY8为例,是由ROW3*COL0交叉而成,行号:0x03;列号:0x00

65b35248972ab986c74fcef23f0ba511.png

那么键值是多少呢?

6a5be65154737553a8791df18032f711.png

KEY8对应”←”功能键,查询kernel/include/uapi/linux/input.h,里面列出了所有键值。

cc718542a53283adcce1585e503b92d4.png

到这里,我们确定了KEY8的键值是105,换算成16进制0x69。

那么KEY8在keymap中对应的值就是:0x03000069,键值不够16bit高位用0补齐。

现在我们写下里程碑的第一个keymap值:

linux,keymap = <0x03000069 //105 KEY_LEFT

用同样的办法,参考原理图,计算出其他按键对应的keymap值。

387fa7e1e4297c24e9609e0f8df041bb.png

keymap值的排列顺序无所谓,可以按照个人喜好,只要和实际电路图相符即可。

确定行号列号对应的GPIO管脚

b3893e0f027eb9a86888681e0b9273b2.png

这一步很简单,根据原理图找出行和列对应的GPIO管脚,注意是GPIO号,不是模块的管脚编号。

把上图的信息整理并顺序填入 kernel/arch/arm/boot/dts/qcom/sc806-evk/msm8909-mtp.dtsi

4e677001b8767ca5d54f9b99c092f10f.png

打开编译选项

在 kernel/arch/arm/configs/la0920_defconfig 和 kernel/arch/arm/configs/la0920_user_defconfig中增加编译选项:

CONFIG_KEYBOARD_MATRIX=y

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值