繁体   English   中英

c#SerialPort无法接收二进制数据

[英]c# SerialPort can't receive binary data

我有一个类可以读取串行端口,并且在发送文本时可以正常工作,但是当更改为二进制数据时,像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);

有帮助吗???

谢谢

我尝试更改编码,问题仍然存在。

关于事件处理程序,我在打开后对其进行了测试,并且可以正常工作,但也尝试将其放置在前面,问题是相同的,并尝试了ReceivedBytesThreshold = 1;

仅当您发送的字符(如0x02、0x04)无法识别为有效的文本字符时才发生此问题,因为这是二进制数据。 二进制数据由万用表发送,我可以用其他程序很好地读取它。

谢谢

问题解决了,DTR应该高到为万用表接口供电,而制造商忘记了指定此功能。

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM