我是C语言的新手,我构建了一个应用程序,从串口接收字节并解析字节。
在一种情况下,应用程序接收表示字符串的字节数组。我的想法是将字节转换为字符串,并将字符串可视化为文本框。
使用此代码:
textSerialNumber.Text = Encoding.UTF8.GetString(readData.payload, 0, readData.payload.Length);
我获得了字符串,但存在一个问题:串行端口上接收的第一个字节是0x00(它表示ack)。当我转换有效负载(ack+字符串)时,第一个字符为空,文本框分配失败。
如果我修改代码以从字节数组的第一个元素开始:
textSerialNumber.Text = Encoding.UTF8.GetString(readData.payload, 1, readData.payload.Length);
在这种情况下,文本框分配也会失败。
string x = Encoding.UTF8.GetString(readData.payload, 1, readData.payload.Length);
但在这种情况下,编码也失败了。
有没有发现错误的建议?
提前谢谢。