如何在 VB 中将有符号字节写入串行端口



我需要能够使用

SerialPort.Write() 方法,除了该方法只接受无符号字节的 byte[] 数组,我将如何将有符号字节写入串行端口?

对于我正在处理的内容,特定命令的值从 -1700 到 1700。

谢谢

噩梦

串行通信通道没有有符号或无符号的概念,只有网络上的 1 和 0 的概念。 是您的操作系统(以及最终您的 CPU 架构)在发送端和接收端为这些 1 和 0 分配一个数值。

您声明的值范围不能用字节表示(根据我的评论和您的回复)。 您需要了解接收设备对给定数字的期望位模式(另一个设备是大端序还是小端序?),然后您可以发送适当的 byte[] 序列来表示要传输的数字。

如果两个设备具有相同的字节序,则可以设置一个短数组,然后复制到字节数组,如下所示:

short[] sdata = new short[] { 1, -1 };
byte[] bdata = new byte[sdata.Length * 2];
Buffer.BlockCopy(sdata, 0, bdata, 0, bdata.Length);

但是,请确保并测试一系列值。 特别是如果您正在处理嵌入式设备,数字编码可能与英特尔 PC 上的编码不完全相同。

最新更新