【发布时间】:2014-11-27 06:57:22
【问题描述】:
SerialPort 的Write 方法是否会写入它被告知的所有字节?
我有这段代码可以通过串口发送数据。
SerialPort port = new SerialPort(
"COM1", 9600, Parity.None, 8, StopBits.One);
// Open the port for communications
port.Open();
// Write bytes
byte[] bytes = Encoding.ASCII.GetBytes("Hello world from PC");
port.Write(bytes, 0, bytes.Length);
// Close the port
port.Close();
如果我发送字符串“Hello”,则通过串口连接到我的 PC 的设备会很好地接收它。如果我发送字符串“来自 PC 的 Hello world” 它只接收 前 16 个字节而不是 19 个。 有没有办法可以在代码中验证所有字节都已发送?还是串口连接的硬件问题?
【问题讨论】:
-
你能发布你如何接收数据的代码吗??
-
OK...但是您确定该设备能够读取所有发送的字节...?通过查看您的代码,字节/数据应该可以毫无问题地发送..
-
或者在发送前尝试检查 CTS (Clear to send)..
-
@User2012384:我会尝试与硬件制造商核实
-
如果您指定接收设备的确切含义,这可能会很有用。另见stackoverflow.com/questions/5723627/…
标签: c#