电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

linux串口触摸屏设计总结VIP免费

linux串口触摸屏设计总结_第1页
1/6
linux串口触摸屏设计总结_第2页
2/6
linux串口触摸屏设计总结_第3页
3/6
Linux serial touch 设计总结 概述: 最近在做嵌入式linux 下串口触摸屏设计,遇到一些问题,经过查找资料和请教同事,总算把问题解决了,事后有把linux 相关的内核代码仔细看了一遍,为了有点成果,特别写了个总结。如有任何问题请联系****************,转载请标明出处。 系统资源: Linux:2.6.36 UI:QT+TSLIB 硬件资源不关心 设计方法: 有两种实现途径。 1、 是将要使用的串口单独拿出来,作为一个platform 总线设备实现,在嵌入式平台 mach 文件里面,加上串口中断号和寄存器首地址,然后将这个串口注册成一个platform 总线设备。在驱动 probe 函数里面需要得到这个串口中断号以及寄存器映射地址,通过寄存器映射地址设置串口波特率,数据位,停止位等,通过中断号注册中断等,然后调用 input_register_device 注册一个input 设备。在中断里面得到外面触摸屏的数据,然后根据 input touch 协议上报触摸数据。这种方法实现简单明了,不需要和linux 的tty,serio 等打交道。但是要求知道串口硬件spec,比如寄存器等,而且这个串口就只能给触摸屏使用了,不能作为tty 使用。因为是嵌入式开发,因此很容易知道硬件spec,而且嵌入式平台一旦确定,那么这个串口肯定就是给触摸屏使用了。因此在嵌入式平台上,推荐使用这个方法。 2、 是将串口作为一个serio 总线设备,利用 linux 内核提供 serio 总线驱动,通过设置对应的串口,调用 serport 提供的函数将串口当做serio 总线设备,在驱动里面需要按照 serio总线设备驱动的框架来实现,这方面的例子linux 里面有很多,比如touchright.c,在模块 init 函数里面调用 serio_register_driver 注册 serio 总线设备驱动,如果serio 总线上对应的serio 设备存在,就调用 connect 函数,在这个函数里面调用 input_register_device 注册一个input 设备。具体驱动不再分析了,很简单,相信各位都能看的懂。 至此,两种方法都实现了串口触摸屏的驱动,讲到这里是不是就完了,非也,本文的重点还在后面,请看下面分析: 第一种方法只要驱动模块被加载,就会在/dev/input 下面创建一个eventx 节点,tslib 就能访问这个节点,获得触摸坐标,然后送给 qt。 第二种方法驱动模块加载后,并没有创建 eventx 节点,也就是说 connect 函数没有被调用,按照 linux 驱动模型来看,就是 serio 总线上还没有对应的serio 设备,因此驱动加载时没有对...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

linux串口触摸屏设计总结

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部