使用usb转串口数据线进行数据接收遇到的问题

电脑串口接收数据时,C#能实时显示正常,但是用USB转232接收数据时只能接收第一组显示出来,数据变动时,C#程序显示不变动,不一会程序就报错提示开始索引不能大于数据长度。因为过来的数据字符长度不稳定,一会10、一会12、一会16的。求高手解答啊。老板叫我这个星期解决啊。哎

USB转串口就是有这个特性,可能与对应的驱动有关系;
USB转串口的数据可能不会按外部收发周期、数据长度传递数据,
而可能会不定时传递不同长度的数据,但一般总的数据长度不会改。在1包数据13字节的情况下,有时一次收到1包数据;有时一次收到2包数据;有时一次收到半包数据;甚至有一次收到104个字节,约8包数据;超过了接收缓冲区大小,造成数据丢失;
程序报错是你的处理问题,可能是你按每次接收到固定长度进行处理造成的;
建议你先将收到的数据全部放入一个缓冲区,然后再查找有没有正确数据包
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-27
脑串口接收数据时,C#能实时显示正常,但是用USB转232接收数据时只能接收第一组显示出来,数据变动时,C#程序显示不变动,不一会程序就报错提示开始索引不能大于数据长度。因为过来的数据字符长度不稳定,一会10、一会12、一会16的。求高手解答啊。老板叫我这个星期解决啊。

硬件问题!追问

是不是线子的问题啊,我很是纠结。。各种测不出问题,我还是新手,半路接手里的项目,苦逼

追答

先使用RS232接口试一试

第2个回答  2016-11-26
楼主,你这个问题怎么解决的,我也遇到了这样的问题
相似回答