在 C# 中连接到 SerialPort
Connection to SerialPort in C#
我一直在尝试使用 System.IO.Ports
连接到串行端口。我一直遇到没有收到回复的问题。
我正在尝试写这个:
_serialPort.Write(new byte[] { 250, 209, f1, f2, f3, f4, a1, a2, g1, g2, s, 209 }, 0, 0);
var initialResponse = _serialPort.ReadLine();
响应为空。
现在,奇怪的是这在 MatLab 中有效
s = serial('COM4');
fwrite(s, [250; 209; F1; F2; F3; F4; A1; A2; G1; G2; S; 209], 'uchar');
set(s, 'Timeout', 10);
Response = fread(s, 2)
是否存在可能导致此问题的字节数组差异?
Write
中的第三个参数告诉您应该实际写入数组的多少字节。在你的情况下它是 0,这意味着不会写入任何字节。试试这个:
var output = new byte[] { 250, 209, f1, f2, f3, f4, a1, a2, g1, g2, s, 209 };
_serialPort.Write(output , 0, output.Length);
我一直在尝试使用 System.IO.Ports
连接到串行端口。我一直遇到没有收到回复的问题。
我正在尝试写这个:
_serialPort.Write(new byte[] { 250, 209, f1, f2, f3, f4, a1, a2, g1, g2, s, 209 }, 0, 0);
var initialResponse = _serialPort.ReadLine();
响应为空。
现在,奇怪的是这在 MatLab 中有效
s = serial('COM4');
fwrite(s, [250; 209; F1; F2; F3; F4; A1; A2; G1; G2; S; 209], 'uchar');
set(s, 'Timeout', 10);
Response = fread(s, 2)
是否存在可能导致此问题的字节数组差异?
Write
中的第三个参数告诉您应该实际写入数组的多少字节。在你的情况下它是 0,这意味着不会写入任何字节。试试这个:
var output = new byte[] { 250, 209, f1, f2, f3, f4, a1, a2, g1, g2, s, 209 };
_serialPort.Write(output , 0, output.Length);