我正在使用STM Virtual Com Port(VCP)使用C#.NET将数据从我的固件发送到我的PC应用程序
我创建了一个使用VCP读取数据的Windows PC应用程序
从我的固件,我每秒发送512个字节,但我的PC应用程序没有每秒接收数据。它需要等待8秒,以便在收到数据回调之前缓冲区已满;
这意味着,它需要等待4096字节,我收到回调...
但我已配置,我的端口每1毫秒超时一次,但它无效......
我的代码如下:
port1 = new SerialPort("COM171", 9600);
port1.WriteBufferSize = 1024;
port1.ReadBufferSize = 1024;
port1.WriteTimeout = 1;
port1.ReadTimeout = 1;
port1.Handshake = Handshake.RequestToSend;
port1.ReceivedBytesThreshold = 1024;
port1.DtrEnable = true;
port1.RtsEnable = true;
port1.ReceivedBytesThreshold = 1;
port1.Open();
知道怎么解决这个问题吗? 我希望将延迟计时器减少到1ms,或者将接收缓冲区减小到每个数据回调的512字节?
答案 0 :(得分:1)
我在固件中出错,我发送零长度数据包,因此我的固件和PC之间的数据连接是打开的,在数据连接终止之前,PC中不会收到任何数据
您可以查看以下链接获取更多信息:
When do USB Hosts require a zero-length IN packet at the end of a Control Read Transfer?