前面的驱动程序无法应用到别人写的现成的应用程序上(比如QT),因为别人的应用程序肯定不会打开我们创建的设备文件(/dev/buttons),别人打开的也许是其他现成的设备,比如/dev/tty。设置别人什么都不打开,直接scanf就能获得按键的输入。
以前写的驱动程序只能我们自己用,或自己公司内部用(因为别人不知道怎么用)。
如果想通用,就需要把自己写的驱动程序融入到内核现有的驱动程序中,这个现成的驱动程序就是输入子系统。...
Tiny4412 linux驱动, 输入子系统阅读全文
上一篇文章 《Tiny4412 Linux驱动之按键(使用中断)》使用中断的方式写了按键检测驱动程序,但是有一个问题:有时候按下一次按键有可能输出两条信息的情况:
按键抖动
如上图所示,按下了一次,缺打印了两次,这是由按键抖动引起的。
按键消抖的原理
按键抖动示意图
我们平常所用的按键为机械弹性开关,由于触点的弹性作用,按键在闭合时不会马上稳定的接通,而是有一段时间的抖动,在断开时也不会立即断开。抖动时间由按键的...
Tiny4412 linux驱动, 定时器防抖动阅读全文
接着上一个实验 《Tiny4412 Linux驱动之按键(使用查询方式)》 ,这一节使用中断的方式进行按键的检测,Linux下的中断体系结构前面也发了好几篇文章,写的都不错挺详细,大家可以看看,链接如下。
Linux内核异常处理体系结构详解(一)
Linux内核异常处理体系结构详解(二)
下面开始今天的正文,使用中断的方式检测按键,
还是一共三个文件,1驱动相关:. keyIrq_drv.c Makefile
2.测试程序 : key_test_irq.c
实验步骤:
驱...
Tiny4412 linux驱动, Tiny4412按键中断阅读全文
前几天在TIny4412开发板上做了LED点灯的Linux驱动,其实挺简单,GPIO驱动,今天再看一下按键的驱动,毕竟按键用的还是比较广泛的,本文使用查询的方式获取按键值,后面会有文章使用中断的方式进行操作,也算是为了对比一下这两种处理方式的效率。
按键检测的原理在前面裸机部分已经介绍的很详细了,《Tiny4412裸机程序,按键检测(轮询方式)》 ,忘了怎么操作的同学可以再查看一下。
还是一共三个文件,1驱动相关:. key_drv.c ...
Linux按键驱动, Tiny4412 linux驱动阅读全文
今天周末,诸事不顺,下了一天雨,出门掉沟里了,全身湿透了,冻死了快,唉,废话不多说了,说说今天在Tiny4412板子上做的测试吧。
今天测试了字符设备驱动的编写,主要是再熟悉一下,其实挺简单,代码一会贴出来。
总共三个文件,1驱动相关:. led_drv.c Makefile
2.测试程序 : led_test.c
实验步骤:
驱动和应用程序都编译出来之后,首先加载驱动:
insmod led_drv.ko
加载驱动
此时设备节点已经创建出来了:
设备节点
此时...
Tiny4412 LED驱动, Tiny4412 linux驱动阅读全文