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