采用扫描法控制矩阵键盘的设计思路如下(以4×4键盘为例):
1.4行所对应GPIO端口设置为推挽输出,4列对应GPIO端口设置为浮空输入。
2.开启4列对应端口的中断功能,设置为下降沿触发,因为浮空输入时端口为高电平状态。
3.4行对应GPIO端口电平拉低,此时如果有按键按下,该按键对应列的电平会被行拉低,此时中断检测到下降沿跳变,中断失能。
4.再将所有行的电平拉高,再依次拉低行,检测对应输出列端是否检测到低电平,由此可以确定行列值。
5.至于最后按键按下输出的值可以自己命名,具体用于工程中时,可以给它赋予变量,用于控制其他参数。
以上1-4点为本代码中的设计思路,而具体完整的程序代码以上文件中都有。本人新人,秉着学习的态度,在编写的过程中遇到几个需要回顾的知识点:
1.GPIO的8种模式配置
2.中断配置及优先级设置
好的东西就分享,对于新手,推荐B站以为UP主的介绍https://www.bilibili.com/video/BV1th411z7sn?p=7&vd_source=1a4a7d8a3b823cd58e3e63ebe1b8622b
希望大家都能学有所成。