Loading

C# serialPort串口相关 string 转为Byte[]

打开串口

  #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;
        }

 

posted @ 2021-06-09 11:27  云辰  阅读(337)  评论(0编辑  收藏  举报