我正在尝试使用C#中的VCP(USB全速)每1ms发送一次串行数据。
发送几分钟后,发送串行数据时出错。它抱怨写入超时,从现在起我将无法再发送数据,例外情况如下:
System.TimeoutException: The write timed out.
我试图关闭并重新打开端口,但它仍然抱怨写入超时。
解决此问题的唯一方法是拔下/重新插入USB。
我是否知道如何解决C#中的写入超时问题? (我猜USB主机控制器处于忙碌状态)
我的串口代码设置如下:
_port.WriteBufferSize = 1024;
_port.ReadBufferSize = 1024;
_port.ReadTimeout = 1;
_port.ReceivedBytesThreshold = 1;
_port.WriteTimeout = 16;
_port.Handshake = Handshake.RequestToSend;
_port.DtrEnable = true;
_port.RtsEnable = true;
更新
下面是截图,取自Eltimata USB分析仪,您可以看到在串行端口写入超时时,它发出了0个字节的SUCESS。