c# 串口调试校验方式功能

2025-04-05 17:20:33
推荐回答(1个)
回答1:

窗口设计简单可以先抛开,你先解决数据发数据/接收问题,其他只是显示而已。

      public string GetData(SerialPort port, string textSend)//获取相关数据
        {
            StringBuilder sb = new StringBuilder();
            byte[] bufSend = StrToHexByte(textSend);//16进制字符串转化成byte数组
            try
            {
                port.Open();
                port.Write(bufSend, 0, bufSend.Length);
                Thread.Sleep(200);

                int n = port.BytesToRead;

                if (n!=0)
                {
                    byte[] readedBytes = new byte[n];
                    port.Read(readedBytes, 0, readedBytes.Length);
                    Thread.Sleep(200);
                    if (CRCCheck(readedBytes))//CRC验证
                    {
                        foreach (byte b in readedBytes)
                        {
                            sb.Append(b.ToString("X2") + " ");
                        }
                    }
                }              
            }
            catch (Exception ex)
            {
                throw new Exception("[UpsCommunicate:][GetData-1:]"+ex.Message);
            }
            finally
            {
                if (port.IsOpen)
                {
                    port.Close();
                }
            }
            return sb.ToString();
        }
 篇幅不够,crc验证和16进制转byte数据的方法就不写了