【M482】 用HidTest.exe软件测试HID传输过程中报错,错误类型【121】。

chrishu |浏览265次
收藏|2022/09/07 13:41

满意回答

2022/09/07 16:49

问题分析:

1、网上搜索此错误的含义是信号灯超时时间已到。

2、抓usb通讯波形发现是主机发送了5s钟的IN令牌,从机无应答,主机超时,切断通信。

3、

示波器抓波形测试发现某次USB中断后,再无USB中断。

检查客户代码发现其设定PDMA中断优先级比USB高,usb中断处理被PDMA中断打断,先执行完PDMA中断后,返回响应USB中断,USB中断处理的末尾将所有中断都清除。

PDMA处理过程中产生的usb中断,没有处理就直接被清除,没有往IN 端点里填数据,所所收到IN令牌回复NAK。再也没有IN ACK中断产生


解决:

usb中断处理函数的最后只清除中断处理函数里不处理的中断(有处理的中断在相关处理里已经清除)。----保证PDMA中断处理过程中产生的USB中断不会没处理而被直接清除掉。

中断处理里加 else


 

nuvoton2022

其他回答(0)
0人关注该问题
+1
 加载中...