我问这个以防我错误地使用 SerialPort.Write()。我很确定我没有,但你永远不知道...
SerialPort.Write(byte[], int, int)的文档指出:
默认情况下,SerialPort 使用 ASCIIEncoding 对字符进行编码。ASCIIEncoding 将所有大于 127 的字符编码为 (char)63 或 '?'。要支持该范围内的其他字符,请将 Encoding 设置为 UTF8Encoding、UTF32Encoding 或 UnicodeEncoding。
这与SerialPort.Write(string)和SerialPort.Write(char[], int, int)文档中的注释相同。
多年来一直如此,但我以前从未真正注意到它。我一直很乐意SerialPort.Write(byte[], int, int)
发送值高于 0x7f 的二进制数据。我觉得奇怪的是,发送字节数组的文档正在谈论字符。
只是我,还是那里的文档有问题?