和一块温控板进行通讯
温控板每秒主动返回一帧数据,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));
}
}