我需要通过 Raspberry Pi 3 在 Windows IoT 上运行的 Multidrop 总线节点和主进程之间建立通信。
我知道如何用 8 位字节交换数据。它的工作代码示例:
_serial_port = await SerialDevice.FromIdAsync(di.Id);
if (_serial_port == null) return false;
_serial_port.WriteTimeout = TimeSpan.FromMilliseconds(1000);
_serial_port.ReadTimeout = TimeSpan.FromMilliseconds(1000);
_serial_port.BaudRate = 9600;
_serial_port.Parity = SerialParity.None;
_serial_port.StopBits = SerialStopBitCount.One;
_serial_port.DataBits = 8;
dataWriteObject = new DataWriter(_serial_port.OutputStream);
dataReaderObject = new DataReader(_serial_port.InputStream);
dataWriteObject.WriteBytes(0xAA);
await dataWriteObject.StoreAsync();
await dataReaderObject.LoadAsync(1);
byte resp = dataReaderObject.ReadByte();
在这里,我从远程节点 发送1010 1010
和接收。xxxx xxxx
这个问题。
- 可以说,远程节点发送给我
1010 1010 1
- 可以说我需要发送
1010 1010 1
代码需要是什么样的?
更新
我考虑解决方法:
- 使用UART 的奇偶校验位。但我实际上不明白,如何。
- 使用 COM -> USB 转换器,但实际上第 9 位可能会出现同样的问题。
- 在中间使用 Adruino,它将通过 GPIO 实现 RxTx 9 位,并以我们的内部格式将数据输出到 Raspberry。