gpt4 book ai didi

c# - serialport readline() 添加问号 "?"

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:52 25 4
gpt4 key购买 nike

我想通过 readline() 从串口文本行读取
文本是 ASCII 并且在终端中一切正常(数据真的很好),但是当我通过 readline 读取时,它返回文本中的某处?示例 - 这是常规的:

!!!;34;248;45;215;43;226;33;235;32;240;35;250;36;240;37;246;40;263;41;272;42;261;39;270;44;256;47;241;49;8888;50;8888;38;245;46;460;48;363

这将返回 readline() :

!!!;34;248;45;215;43;226;?33;235;32;240;35;250;36;240?;37;246;40;263;41;272;42;261?;39;270;44;256;47;241;49;888?8;50;8888;38;245;46;460;48;3?63

代码很简单:

this.serialPort1.PortName = "COM3";    
this.serialPort1.BaudRate = 19200;
this.serialPort1.Parity = System.IO.Ports.Parity.Mark;
this.serialPort1.Open();

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
prectenyRadek=this.serialPort1.ReadLine();
this.Invoke(new EventHandler(DisplayText));
}

private void DisplayText(object sender, EventArgs e)
{
richTextBox1.AppendText(prectenyRadek);
}

有没有人知道,什么以及为什么加我“?”

最佳答案

“如果秤发送二进制数据,则编码属性很重要。默认值为 ASCII,因此如果二进制数据中的字节 >= 128,则会生成很多问号。在这种情况下,您应该改用 Read() ReadLine() 的。这就是你想用来开始解决这个问题的东西,你想查看原始字节值,你不能从问号中看到太多。特别注意你的最后一两个字节从阅读中获得,他们应该重复得很好。”

来源:SerialPort.ReadLine() returns garbage

关于c# - serialport readline() 添加问号 "?",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11717168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com