C#旅程——串口发送数据

串口发送数据时可以一个byte一个byte的发送数据,也可以一次性丢出,分多次丢出的话会导致一段数据被分成多段发出,中间的延时可能会超过2ms,与FW通讯时会出现异常。

public void WriteData(List<int>iBuffer)
        {
            byte[] sendData = new byte[iBuffer.Count];
            string UpdateSendData = "";
            try
            {
                serialPort1.DiscardInBuffer();
                serialPort1.DiscardOutBuffer();
                for (int i = 0; i < iBuffer.Count; i++)
                {
                    sendData[i] = Convert.ToByte(iBuffer[i]);
                    UpdateSendData += sendData[i].ToString("X2") + " ";
                }
                serialPort1.Write(sendData, 0, iBuffer.Count);  	//一次性丢出    
               
                SerialTransData("Send",UpdateSendData);
                writeLog.WriteTxtLog(iBuffer);     
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString(), "Tips", MessageBoxButtons.OK, MessageBoxIcon.Error);
                PassData.ConnectFlag = false;
            }
        }

读取数据时,如果一次性读取数据不够完整,可以在接收到数据时进行一个延时,例如延时10ms,这样可以将缓冲区的数据一次性读出,而不会一段数据分两次接收。

你可能感兴趣的:(笔记,C#,c#)