永发信息网

C# Seriport控件用datareceive接受数据异常?

答案:2  悬赏:70  手机版
解决时间 2021-01-30 10:47
  • 提问者网友:太高姿态
  • 2021-01-30 06:56
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { Thread.Sleep(50); datareceive = serialPort1.ReadExisting();//读数据 this.Invoke(new EventHandler(ReceiveText)); } private void ReceiveText(object sender, EventArgs e) { char[] datareceive_0 = datareceive.ToCharArray();//问题就是出在这里 int i = datareceive_0.Length;//判断长度 if (i == 7){ //这里得到的数据分析}} serialPort1.ReadExisting()得到的数据是char[]数据,所以必须转换成数组才能显示,不然看不到里面的数据!这里用的Modbus来得到数据的,情况如下所示:发送:01 03 02 13 88 B5 12得到的是:01 03 02 13 3f 3f 12有的时候数据正常有时候就像这样不正确,不知道怎么回事,想了很多不知道问题所在,希望得到解答! .
最佳答案
  • 五星知识达人网友:蓝房子
  • 2021-01-30 08:18
3f 3f之类是串口的奇偶校验设置出错了才出来的,改成无校验试试看。
全部回答
  • 1楼网友:玩家
  • 2021-01-30 08:26
搜一下:C# Seriport控件用datareceive接受数据异常?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯