写入串口,如pythons serial lib

时间:2018-04-25 13:54:58

标签: c# python serial-port

我使用pythons serial lib将命令写入usb端口:

ser = serial.Serial()
ser.port = 'com4'
ser.baudrate = 115200
ser.parity = serial.PARITY_NONE
ser.stopbits = serial.STOPBITS_ONE
ser.bytesize = serial.EIGHTBITS
ser.timeout = None
ser.open()
CMD_MOTOR_DRIVE=[1, 249, 3, 6, 42, 100]
ser.write(CMD_MOTOR_DRIVE_1)

现在我希望在SerialPort类的帮助下在c#中做同样的事情:

SerialPort port = new SerialPort();
port.PortName = ports[0]; //"com4"
port.BaudRate = 115200;
port.Parity = Parity.None;
port.StopBits = StopBits.One;
port.DataBits = 8;
port.Open();
//System.Threading.Thread.Sleep(20);
if(port.IsOpen == true)
{
   log.Info("Port has been opened");
}
while(true)
{
   port.Write("1, 249, 3, 6, 11, 100");
}

我能够打开端口,但控制器似乎没有响应port.Write(string)函数的命令。我不知道在c#中将命令转换为字节数组的相应方式是什么。我想我必须使用port.Write((Byte [],Int32,Int32))函数而不是port.Write(string)一个?

1 个答案:

答案 0 :(得分:1)

预期更容易:

byte[] a = { 1, 249, 3, 6, 11, 100 };
port.Write(a, 0, 6);