如题所说,在软件测试过程中,发现COM口接收到的数据存在异常。我的硬件设备是海任科技的车辆光幕分离器,数据为16进制码。
1.起初怀疑是缓冲区的问题,但是经过清理的缓冲区依旧存在这个问题;
2.怀疑是SerialPort类的DataReceived的线程优先级问题,但是将其他线程优先级降低后仍未解决;
3.怀疑是SerialPort类的ReadByte的同步读取方法问题,而后用原厂C++编写的测试软件,显示正常,用网上的串口调试软件也都正常。
在网上搜了很久,也没能解决这个问题,然后一次偶然的测试,我发现USB转换器在响,恰好此时数据也出现了异常,这才想到可能是这个转换器的问题,然后把USB转换器拔了,直接把串口线插在PC机上调试,很稳定。无奈笔记本上没有9针的COM口,只好另寻稳定的转换器了……