如题,在CH569长时间通讯过程中主机会收到STALL故障造成通讯中断,现在发现只有复位才能恢复。
请问:
1、在程序里有没有办法规避出现STALL故障?
2、出现STALL后,软件有什么方法可以恢复通讯?
如题,在CH569长时间通讯过程中主机会收到STALL故障造成通讯中断,现在发现只有复位才能恢复。
请问:
1、在程序里有没有办法规避出现STALL故障?
2、出现STALL后,软件有什么方法可以恢复通讯?
补充说明:CH569作为从机,采用BULK传输
通常是控制传输,设备可以应答STALL状态,当然非0端点也具备应答STALL的能力。
首先应当定位,设备是对哪个传输应答了STALL, 如果是控制传输,根据主机下发请求,在请求处理函数中添加相应代码处理。若相关处理代码不存在,默认应答STALL。
你好,STALL是端点1接收数据过程中出现的,是BULK传输。
要想让非0端点应答STALL,这个的代码实现应该是很明显的可以发现的。
所以排除代码确实写成这样之外,可以描述一下是如何判断这个问题是因为stall引起的,USB3.0传输错误的定位,没有硬件工具的情况下实际还是比较困难的。避免是你的理解错误
上位机给569的端点1发数据,569通过OUT中断连续读取数据。通讯中断时,上位机代码返回的故障码是STALL。
569中断处理的部分代码如下:
返回异常前,程序是否有执行USB30_StandardReq或者USB30_NonStandardReq?
USB30_OUT_Status返回的nump值是否变为0,指示包发送完成?
电脑显示的错误并不一定真的是stall。