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

26 篇文章 1 订阅

串口发送数据时可以一个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,这样可以将缓冲区的数据一次性读出,而不会一段数据分两次接收。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值