打印
[技术问答]

NUC972 USB HOST插入鼠标,按键按下、弹起时只触发一次中断疑问

[复制链接]
2445|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 mojingjian 于 2024-10-22 17:05 编辑

使用的rt-thread + NUC972 UsbHostLib进行鼠标设备开发。

调试情况如下:
1. 使用的鼠标是usb 1.1标准,在开启EHCI和OHCI的情况下会在下面的代码处自动切换为使用OHCI,

但实际运行时线程会被卡死,仿真查找是在下面代码

所以暂时先屏蔽EHCI,只使用OHCI


2. 使用OHCI运行时,能正确识别鼠标设备并在点击、移动时有数据传输,但问题是两次动作只有一次数据,比如执行按下、弹起这两个动作,在控制台上只打印出一句信息。

并且控制台的打印信息是输出的按下时(hid 0x1 0x0)的信息或弹起时(hid 0x0 0x0)的信息是有规律的,比如初始的状态,我按、松鼠标左键会打印弹起的信息,当我滚动一步滚轮后,再按、松鼠标左键就会变成打印按下的信息。
请问各位有否遇到相同问题或有什么调试思路?谢谢。




11700671763366e65d.png (14.62 KB )

11700671763366e65d.png

17624671764161806c.png (21.01 KB )

17624671764161806c.png

9549167176566895a8.png (14.83 KB )

9549167176566895a8.png

1016667176567f3eaa.png (14.83 KB )

1016667176567f3eaa.png

70704671768110f57e.png (37.18 KB )

70704671768110f57e.png

使用特权

评论回复
沙发
riplay| | 2024-10-23 09:27 | 只看该作者
按滚轮后,再按,松鼠标左键是否有两条数据发上来,比如接到电脑上是否是有两条数据。如果有两条数据,是否是NUC972没有接收正确。如果NUC972有接收到两条数据,而处理鼠标后只打印按下信息,是否是程序上处理鼠标按下松开逻辑出了问题。

使用特权

评论回复
板凳
mojingjian|  楼主 | 2024-10-23 11:43 | 只看该作者
riplay 发表于 2024-10-23 09:27
按滚轮后,再按,松鼠标左键是否有两条数据发上来,比如接到电脑上是否是有两条数据。如果有两条数据,是否 ...

1. 滚轮每动一步在电脑都能收到数据,而在程序里是每动两步才触发一次中断,打印一次数据
2. 按键按下、弹起在电脑都能收到两次数据,只是有时候是按下、弹起一次收到两包,有时是按下一包,弹起一包;在程序里按下、弹起只触发一次中断,打印一次数据
0x6后都接着0x4中断,不知道是不是由该问题引起?

使用特权

评论回复
地板
mojingjian|  楼主 | 2024-11-15 17:37 | 只看该作者
屏蔽下面的语句可确保鼠标正常工作,运行过一段时间暂时没发现问题。

使用特权

评论回复
5
Undshing| | 2024-11-17 13:32 | 只看该作者
程序处理逻辑是不是有问题啊

使用特权

评论回复
6
mojingjian|  楼主 | 2024-12-6 11:19 | 只看该作者
Undshing 发表于 2024-11-17 13:32
程序处理逻辑是不是有问题啊

你觉得是哪里有问题?这个处理逻辑不是我实现的,是使用的bsp里现成代码,具体对不对我也不确定

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

65

帖子

1

粉丝