我有一个类读取串口并且在发送文本时工作正常但是当更改为二进制数据时,像0x02,0x04这样的字节......什么都不能接收,BytesToRead为零,而DataReceived回调不是叫...我试图改变编码,这是我的配置:
SerialPort _serialPortTenma = new SerialPort();
_serialPortTenma.PortName = textBox17.Text;
_serialPortTenma.BaudRate = 2400;
_serialPortTenma.Parity = Parity.None;
_serialPortTenma.DataBits = 8;
_serialPortTenma.Handshake = Handshake.None;
_serialPortTenma.StopBits = StopBits.One;
_serialPortTenma.ReadTimeout = 5000;
_serialPortTenma.WriteTimeout = 5000;
_serialPortTenma.DiscardNull = false;
_serialPortTenma.Encoding = System.Text.Encoding.ASCII;
_serialPortTenma.Open();
_serialPortTenma.DiscardInBuffer();
_serialPortTenma.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler2);
任何帮助???
由于
答案 0 :(得分:0)
我试图更改编码并且问题仍然存在。
关于事件处理程序我在打开后测试它并且工作正常但是也尝试将它放在之前并且问题是相同的并且尝试了ReceivedBytesThreshold = 1;
问题只发生在您发送的字符如0x02,0x04,这些字符无法识别为有效文本字符,因为这是二进制数据。二进制数据由万用表发送,我可以用其他程序读取它。
由于
答案 1 :(得分:0)
问题解决了,DTR应该很高,为万用表接口供电,制造商忘了指定这个。
由于