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接口的测试,还是比较简单就能配置实现,但没有按键的消抖机制,还是需要自己去实现,这样看起来有点小鸡肋吧