串口触摸屏 interrupt函数不会调用问题

枫叶会再红吗 2017-11-16 07:39:05
在做串口触摸屏移植,弄了好几天都没弄出来。。。在全志和amlogic2个平台下都是没有调用interrupt函数来接收上报数据,serio_device也注册成功了,都匹配了,也调用了connect函数。波特率设置没错,tp在Windows下用串口接收也有数据上报,但是将其接到平台上,cat /dev/ttyS0 那个tp插上的串口,有反应,但是数据没有打印,乱码都没有,都是空的,就是按下tp adb cat /dev/ttyS0 里面的光标会往后移,这里也有点怪。
现在就在想他为什么不会调用interrupt,明明串口有数据传过来,在网上找了好久,追到内核里面,interrupt函数是由tty_flip_buffer_push->flush_to_ldisc 再一步步往下调的。我在内核这2个函数里加了log,发现开完机之后这2个函数一直在无限触发?

count = receive_buf(tty, head, count); ->
disc->ops->receive_buf(tty, p, f, count);->
.receive_buf = serport_ldisc_receive,->
ret = serio->drv->interrupt(serio, data, dfl);
我想是因为他们一直在触发,导致其来不及处理其中的interrupt函数吗,感觉也不对啊,2个平台下测了下都是这样一直触发tty_flip_buffer_push->flush_to_ldisc这2个函数。问题就是为什么没有调用interrupt函数,按理说应该按一次就会调用好几次interrupt来 传对应长度的数据。代码之前在三星开发板上试过是可以的,不知道为什么换到现在这2款开发板就不行了,不同的只有内核版本,其他的都没差把。不知道该往哪里去分析了,求教了。
...全文
346 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
枫叶会再红吗 2017-11-20
  • 打赏
  • 举报
回复
引用 1 楼 jklinux 的回复:
看样子,屏里应是有芯片处理好坐标等数据并通过uart发出数据, 板上应就是用一个uart接口连接屏的uart接口就好了。 而且只要板上uart驱动好就可以了,用不到其它硬件中断了,就是写uart应用程序就行。有可能屏连接板上的其它uart接口,毕竟uart0常用于调试使用的。
谢谢,确实是平台预留打印log日志的uart口不行,没有数据输出,换另一个串口就好了。
jklinux 2017-11-17
  • 打赏
  • 举报
回复
看样子,屏里应是有芯片处理好坐标等数据并通过uart发出数据, 板上应就是用一个uart接口连接屏的uart接口就好了。 而且只要板上uart驱动好就可以了,用不到其它硬件中断了,就是写uart应用程序就行。有可能屏连接板上的其它uart接口,毕竟uart0常用于调试使用的。

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧