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

[复制链接]
 楼主| mojingjian 发表于 2024-10-22 17:02 | 显示全部楼层 |阅读模式
本帖最后由 mojingjian 于 2024-10-22 17:05 编辑

使用的rt-thread + NUC972 UsbHostLib进行鼠标设备开发。
896066717633308017.png
调试情况如下:
1. 使用的鼠标是usb 1.1标准,在开启EHCI和OHCI的情况下会在下面的代码处自动切换为使用OHCI,
7861671764a14687c.png
但实际运行时线程会被卡死,仿真查找是在下面代码
57465671764f008f47.png
所以暂时先屏蔽EHCI,只使用OHCI
594967176564be346.png

2. 使用OHCI运行时,能正确识别鼠标设备并在点击、移动时有数据传输,但问题是两次动作只有一次数据,比如执行按下、弹起这两个动作,在控制台上只打印出一句信息。
858706717680b3720e.png
并且控制台的打印信息是输出的按下时(hid 0x1 0x0)的信息或弹起时(hid 0x0 0x0)的信息是有规律的,比如初始的状态,我按、松鼠标左键会打印弹起的信息,当我滚动一步滚轮后,再按、松鼠标左键就会变成打印按下的信息。
请问各位有否遇到相同问题或有什么调试思路?谢谢。




11700671763366e65d.png
17624671764161806c.png
9549167176566895a8.png
1016667176567f3eaa.png
70704671768110f57e.png
riplay 发表于 2024-10-23 09:27 | 显示全部楼层
按滚轮后,再按,松鼠标左键是否有两条数据发上来,比如接到电脑上是否是有两条数据。如果有两条数据,是否是NUC972没有接收正确。如果NUC972有接收到两条数据,而处理鼠标后只打印按下信息,是否是程序上处理鼠标按下松开逻辑出了问题。
 楼主| mojingjian 发表于 2024-10-23 11:43 | 显示全部楼层
riplay 发表于 2024-10-23 09:27
按滚轮后,再按,松鼠标左键是否有两条数据发上来,比如接到电脑上是否是有两条数据。如果有两条数据,是否 ...

1. 滚轮每动一步在电脑都能收到数据,而在程序里是每动两步才触发一次中断,打印一次数据
2. 按键按下、弹起在电脑都能收到两次数据,只是有时候是按下、弹起一次收到两包,有时是按下一包,弹起一包;在程序里按下、弹起只触发一次中断,打印一次数据 707206718702a37858.png
0x6后都接着0x4中断,不知道是不是由该问题引起?
851516718707ee1621.png
 楼主| mojingjian 发表于 2024-11-15 17:37 | 显示全部楼层
屏蔽下面的语句可确保鼠标正常工作,运行过一段时间暂时没发现问题。
48231673715f51c835.png
Undshing 发表于 2024-11-17 13:32 | 显示全部楼层
程序处理逻辑是不是有问题啊
 楼主| mojingjian 发表于 2024-12-6 11:19 | 显示全部楼层
Undshing 发表于 2024-11-17 13:32
程序处理逻辑是不是有问题啊

你觉得是哪里有问题?这个处理逻辑不是我实现的,是使用的bsp里现成代码,具体对不对我也不确定
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

65

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部