STMCU小助手
发布时间:2022-9-4 16:09
|
在搞定矩阵键盘的扫描模式以后,我就开始想用中断的方式来搞定矩阵键盘,通过中断的方式来搞定矩阵键盘非常方便,也不会占用太多的机时,扫描模式的文章在我另一个博客中,可以根据个人情况来选择合适的方式。3 x7 \' Y+ L8 ~ 我选择的是3*4的矩阵键盘,具体的实物图如下所示# G) t" ]- V8 u; h* O2 l2 | 2 A: P2 J" @# ^0 W
矩阵键盘是4行3列示意图如图所示 : R+ A2 ]2 |! }
, v0 H a6 i8 w$ @ 采用中断方式来进行检测按键具体的思想就是通过按键先来触发中断,如果中断被触发再来进行行或者列的扫描来确定是哪个具体的按键被按下,这样可以节省CPU的机时,也可以更有效率。4 K* r Z. |0 S h * {. P2 A+ S8 B+ D 我的代码就是采用这种方法。首先是将行的引脚都设置为上拉输入模式,并开启这些引脚的中断,将列的三个引脚设置为推挽输出模式,并将引脚拉低为低电平,这样如果有按键按下,就会触发四个行引脚的中断,来判断具体是哪一行被按下。5 M& c3 M, F# {5 {7 @" i 其次,如果检测到是哪一行后,就立即进入列扫描模式,将四个行引脚设置为推挽输出模式,并将引脚拉高设置为高电平,将三个列引脚设置为下拉输入模式,这样通过列扫描就可以进行确定到哪个键盘按下。2 v5 r; C: P) H- [' p 具体实现如下图所示, U( X/ n2 }( c% w8 x1 P% i
E& i- U X( T7 j- E- g 按下按键49 y! u: k, n0 y9 A: ^, K
" }0 Q! z, [+ f5 a H" U1 G 按下按键9% W0 _( \/ }0 \ G ( }. t- Y- K ]5 J& u% d) p7 H3 C 具体编程思路如下
————————————————% q2 T1 k! _- W; X8 W6 S 版权声明:嵌入式进阶之路8 f) \+ o* V" X% Z& @0 e/ R |
【福利三:雨露均沾·逢7狂欢】之一:STM32F1外部中断异常故障的解决办法
STM32中断响应延迟优化:从NVIC配置到DMA加速的极致性能调优
基于STM32串口中断之缓存区溢出卡死经验分享
基于STM32数组越界异常中断经验分享
基于STM32之数组越界异常中断经验分享
基于STM32连接参数更新进程后导致断连的问题分析
基于STM32连接参数更新进程后导致断连的问题分析
基于STM32的定时器不按设定超时产生中断
基于STM32利用TIMER事件和栈帧体验中断响应经验分享
基于STM32外部中断原理和配置代码经验分享
微信公众号
手机版