打开串口
#region[打开串口] private void SerialPortStart(string comPort, int baudRate) { foreach (string comName in SerialPort.GetPortNames()) { if (comName == comPort) { serialPort = new SerialPort(comName); serialPort.BaudRate = baudRate; serialPort.Parity = Parity.None; serialPort.StopBits = StopBits.One; serialPort.DataBits = 8; serialPort.Open(); LogUtils.WriteInfoLog(typeof(MainForm), string.Format("已打开串口:{0},波特率:{1}", comPort, baudRate)); break; } } } #endregion
打开串口,发送命令
if (serialPort.IsOpen) { string openCommand = "21 0F 00 00 00 08 01 FF BC CD"; byte[] bs = strToToHexByte(openCommand); serialPort.Write(bs, 0, bs.Length); }
将串口命令转为字节
private static byte[] strToToHexByte(string hexString) { hexString = hexString.Replace(" ", ""); if ((hexString.Length % 2) != 0) hexString += " "; byte[] returnBytes = new byte[hexString.Length / 2]; for (int i = 0; i < returnBytes.Length; i++) returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16); return returnBytes; }