首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

路一个按键驱动

2012-09-18 
谈一个按键驱动谈一个按键驱动提示:::本人英语不好.忽略命名单词~~~谢谢合作...联系方式:97164811@qq.com

谈一个按键驱动

谈一个按键驱动

提示:::本人英语不好.忽略命名单词~~~谢谢合作...

联系方式:97164811@qq.com

可能这一篇好像没跟上我之前的其他文章,不过没事,回头我再慢慢补上那些帖子吧.今天主要谈谈按键驱动吧...一来是为自己总结,二则希望得到网友们的指点,写的不好的地方,还望指正..谢谢~~~~

首先来看看按键的硬件结构.

由图可知,按键按下keyint1会变成接地,也就是低电平..否则能,就会被上拉电阻拉高到高电平....这个地方有什么不明白的,咱们可以私聊~~

我相信大部分人这里都是小case...

下面进入正题..我是这么设想的,一个按键有3种基本的按键消息叫做 KEY_U, KEY_HOLD,KEY_DOWN.还有一些其他属性,比如按键去抖,按键检测时间,按键按住了多久..等等..其他比如双击之类的,可以根据按键间隔来判断.

根据这些,我先给出我的结构体代码:

unsigned int key_poll(struct file *filp, struct poll_table_struct *wait){unsigned int mask = 0;struct device_dev *devp = filp->private_data;down(&devp->sem);poll_wait(filp,&devp->r_wait,wait);if(!queue_isEmpty(&devp->queue_head)) {/*可读*/mask |= POLLIN/* | POLLRDNORM*/;}up(&devp->sem);return mask;}

Ok..完事....整个按键驱动的代码都完成了...我也测试过了..木有问题..不过你们用的时候有啥问题,得告诉我...我得及时修正..谢谢.....

好了不多说了...11.18 Pm了..睡觉了~~~

一会我把源码打包上传,之后发链接在这边,免资源分下载..哈哈

热点排行