首先参照这篇http://blog.sina.com.cn/s/blog_6143523a0100st2z.html
驱动根据自己的改为/dev/buttons
QWSMyKbPrivate::readKeyboardData(),因为驱动里面read实现的不同,这个函数自己重新写的。
然后编译,制作文件系统下到tq2440的板子里,运行qt程序,发现按键没反应
几番实验,发现原因在于这几个地方:
在之前改的qkbdtty_qws.cpp里面的有这行代码
terminalName = device.isEmpty()?"/dev/atao_button":device.toLatin1();
那么device默认的取值是多少呢
在制作的文件系统中有一个脚本关于qt4.7环境变量的配置,我的是/bin/qt4
里面有一项 export set QWS_KEYBOARD="TTY:/dev/tty1"
这就是device的默认值,所以才会出现这种情况,即使我没加载buttons的驱动,qt程序运行后也在串口输出
open /dev/atao_button OK buttonFD=10
因为qt成功打开的是/dev/tty1
解决办法:1,修改terminalName ="/dev/atao_button"
2,修改export set QWS_KEYBOARD="Yopy:/dev/buttons" (这个方式没试,Yopy不太懂)
在转载一个基于Qt Gui的Led控制显示程序