C#串口通讯换行问题解决

和一块温控板进行通讯
在这里插入图片描述
温控板每秒主动返回一帧数据,Temp: 120.16 //当前温度值:120.16℃;
但是通讯时数据不能自动换行,使用串口调试助手
在这里插入图片描述
这个却可以自动换行,改用HEX显示
在这里插入图片描述
查表
在这里插入图片描述
每帧数据都是以空格加换行结尾。
现在我们把DB9串口线的2、3脚短接,自发自收测试
在这里插入图片描述
发现启换行作用的是0D和0A,这个串口助手应该是C++编写,换行符有差异;
参考博客
https://blog.csdn.net/CHCH998/article/details/81434013
在这里插入图片描述
解决思路:
遍历获取到的Byte数组,如果发现0x0A则强行换行,并丢弃原来的字符,这样可以兼容0A或0D 0A结尾的情况

                foreach (byte b in Received_Buf)
                {
                    if (b==0x0a)   //需要ASCII 13 和10即回车和换行同时出现才会换行,温控板只有空格和换行,换不了行
                    {
                        StrB.Append(Environment.NewLine);
                    }
                    else
                    { 
                        StrB.Append(Convert.ToChar(b));
                    }
                }
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值