RT1052+KPP矩阵键盘接口和systick延时
在1052众多的外设资源里面,我发现了一个比较有意思的外设接口,KPP(矩阵键盘接口),这个在很多MCU里面都没见过,一般都是用过IO输入来读取的,而1052直接集成了!!!最大应该是支持8X8的矩阵键盘输入,而ok10520-c板子也提供了一个4X4的排针接口,可以用来测试。
KPP的配置也是比较简单,IO复用为KPP模式
![]()
设置为中断模式触发
![]()
中断函数
![]()
按键读取
![]()
实验结果,发现按键没有消抖机制,按一下会触发好几次中断
![]()
需要添加适当的延时来消抖,这里我们用systick来做延时机制
可以直接使用如下函数来设置systick,因为我systick采用时钟摘取的方式,所以不影响中断,时钟摘取的意思就是延时之前取一次systick的计数值做参考,然后一直读取计数值做比较,直到大于延时的时间
![]()
![]()
打印信息检测延时效果。
![]()
重新进行main函数配置
![]()
发现按键相对比较稳定,按一次打印一次。当然这是比较粗糙的消抖方式,不能用于实际产品。
![]()
KPP接口的测试,还是比较简单就能配置实现,但没有按键的消抖机制,还是需要自己去实现,这样看起来有点小鸡肋吧
KPP的配置也是比较简单,IO复用为KPP模式

设置为中断模式触发

中断函数

按键读取

实验结果,发现按键没有消抖机制,按一下会触发好几次中断

需要添加适当的延时来消抖,这里我们用systick来做延时机制
可以直接使用如下函数来设置systick,因为我systick采用时钟摘取的方式,所以不影响中断,时钟摘取的意思就是延时之前取一次systick的计数值做参考,然后一直读取计数值做比较,直到大于延时的时间


打印信息检测延时效果。

重新进行main函数配置

发现按键相对比较稳定,按一次打印一次。当然这是比较粗糙的消抖方式,不能用于实际产品。

KPP接口的测试,还是比较简单就能配置实现,但没有按键的消抖机制,还是需要自己去实现,这样看起来有点小鸡肋吧
浙公网安备 33010602011771号