我使用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)一个?
答案 0 :(得分:1)
预期更容易:
byte[] a = { 1, 249, 3, 6, 11, 100 };
port.Write(a, 0, 6);