|
|
前往: |
| 哪位给点写STM32 4*4矩阵键盘的思路,要用中断的。 |
| 发表人 | 内容 | |
|---|---|---|
| 2011/07/04 21:33 |
|
|
|
[楼主位] Crystal_oscillat
等级:
注册时间:![]() 2011/06/30 15:20 文章: 47 来自: 湖南 离线 |
哪位给点写STM32 4*4矩阵键盘的思路,要用中断的。
|
|
|
||
| 2011/07/05 15:49 |
|
|
|
[1楼] hpy6666
等级:
注册时间:![]() 2011/07/02 16:11 文章: 69 来自: 江苏 离线 |
应该是用8个IO端口组成4*4的矩阵,通过循环检测各IO口的0/1 状态变化确认是那一行那一列,先将8个IO口置1。应该是用EXIT中断吧,我还没有入门啊,但这个思路肯定是没错的。。。。,建议你去参考原子的开发板列程KEY0和KEY1的列程!!
希望能对你有帮助!! |
|
|
||
| 2011/07/05 18:37 |
|
|
|
[2楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8097 来自: 湖南 离线 |
矩阵键盘还要用中断,我倒真没弄过.
想想原理,矩阵键盘要靠扫描才能发挥作用,那么程序里面必定有一个扫描的函数,用于循环检测各行各列的按键.检测的时候就可以读到键值了. 我实在想不出中断用在这里,有什么意思? 有点脱裤子放屁的感觉. 这篇文章被编辑了 1 次. 最近一次更新是在 2011/07/05 18:38 |
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/07/05 22:55 |
|
|
|
[3楼] leavic
等级:
注册时间:![]() 2011/03/08 21:25 文章: 26 离线 |
楼主可能是不想做轮询检测吧,其实用中断和用轮询在检测方式上都是一样的,只不过轮询扫描8个IO,中断函数扫描4个IO。
|
|
|
||
| 2011/07/10 08:48 |
|
|
|
[4楼] dgdzov
等级:
注册时间:![]() 2011/03/22 17:59 文章: 14 离线 |
楼主的意思可能是,平时懒得扫描,有按键触发后再开始扫描(或许是想唤醒)。
可以做,看看下面的方法行不行: 1. 行4个IO口输出低。 2. 列4个IO口带上拉输入。(低电平触发中断) 3. 当对应的列中断触发后,再开始逐行扫描。 |
|
|
||
| 2011/07/10 09:12 |
|
|
|
[5楼] 正点原子
等级:
注册时间:![]() 2010/12/02 10:41 文章: 8097 来自: 湖南 离线 |
楼上的方法是可行的.不过会占用4个中断输入口.
|
|
|
我的淘宝小店:http://shop62103354.taobao.com |
||
|
||
| 2011/07/10 12:07 |
|
|
|
[6楼] leavic
等级:
注册时间:![]() 2011/03/08 21:25 文章: 26 离线 |
而且按楼主的目的来说,可能还要使用0~4这几个独立中断口,否则中断函数里还是行列都要扫描。。
|
|
|
||
| 2012/02/20 11:04 |
|
|
|
[7楼] libing64
等级:
注册时间:![]() 2012/02/15 13:58 文章: 43 离线 |
回复【6楼】 leavic :
--------------------------------- 我也是需要使用矩阵键盘,但是我想到的方法是,16个键中留一个作为按键输入的启动键, 产生中断之后就开始进行按键扫描,这样就只占用一个IO啦~ |
|
|
||
|
|
||
|
| 前往: |