SerialPort.Parity=串行奇偶校验。即使不工作,UWP+;覆盆子皮&x2B;Windows 10物联网核心&x2B;C#
我正试图通过串口从我的raspberry pi向PC发送一个字符串 案例1:我的PC终端设置:BD 9600、无奇偶校验、8个数据位、1个停止位和Raspberry Pi也配置为相同的设置,并且我的字符串从Rpi传输到PC没有任何问题 案例2:我的PC终端设置:BD 9600、偶校验、8个数据位、1个停止位和Raspberry Pi也配置为相同的设置,PC终端接收到垃圾值 案例3:我的PC终端设置:BD 9600,无奇偶校验,8个数据位,1个停止位和为BD 9600配置的Raspberry Pi,偶奇偶校验,8个数据位,1个停止位和我的字符串从Rpi传输到PC,没有任何问题 据我了解,在案例1和案例2中,字符串必须被传输,而在案例3中,PC终端可能会接收垃圾值 我使用下面的例子 这是一个已知的问题还是我遗漏了什么。 请导游SerialPort.Parity=串行奇偶校验。即使不工作,UWP+;覆盆子皮&x2B;Windows 10物联网核心&x2B;C#,uwp,raspberry-pi,windows-10-iot-core,Uwp,Raspberry Pi,Windows 10 Iot Core,我正试图通过串口从我的raspberry pi向PC发送一个字符串 案例1:我的PC终端设置:BD 9600、无奇偶校验、8个数据位、1个停止位和Raspberry Pi也配置为相同的设置,并且我的字符串从Rpi传输到PC没有任何问题 案例2:我的PC终端设置:BD 9600、偶校验、8个数据位、1个停止位和Raspberry Pi也配置为相同的设置,PC终端接收到垃圾值 案例3:我的PC终端设置:BD 9600,无奇偶校验,8个数据位,1个停止位和为BD 9600配置的Raspberry Pi
谢谢您您可以尝试了解C#库(或底层dll)或(USB-)设备驱动程序(例如CH340)中是否存在问题 使用MODE命令检查端口:
C:>mode COM3
Status for device COM3:
-----------------------
Baud: 9600
Parity: None
Data Bits: 7
Stop Bits: 1
Timeout: OFF
XON/XOFF: OFF
CTS handshaking: OFF
DSR handshaking: OFF
DSR sensitivity: OFF
DTR circuit: ON
RTS circuit: ON
使用MODE命令配置端口,如果可以手动设置奇偶校验,请重试:
C:>help mode
Configures system devices.
Serial port: MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s]
[to=on|off] [xon=on|off] [odsr=on|off]
[octs=on|off] [dtr=on|off|hs]
[rts=on|off|hs|tg] [idsr=on|off]
...
注意:
有两个参数(dcb.Parity和dcb.fParity)控制奇偶校验设置,必须设置这两个参数。对于案例2,您可以尝试在PC终端上设置7个数据位,其他设置保持不变。案例1和案例3之间有什么区别?您好,感谢您的回复,我将尝试您的解决方案。对不起,案例3我已编辑,谢谢您指出。实际上,在案例3中,Raspberry Pi配置为BD 9600,偶数奇偶校验,8个数据位,1个停止位。我尝试按照您的建议将PC中的案例2数据位更改为7,但仍然收到垃圾值。我已尝试更改pi和uart转换器,但仍然无法隔离问题区域。如果我的解决方法不适用于您,您可能需要避免当前使用奇偶校验功能。我已经在内部报告了这个问题。
C:\>mode COM3 PARITY=E DATA=8
Status for device COM3:
----------------------
Baud: 9600
Parity: Even
Data Bits: 8
Stop Bits: 1
Timeout: OFF
XON/XOFF: OFF
CTS handshaking: OFF
DSR handshaking: OFF
DSR sensitivity: OFF
DTR circuit: ON
RTS circuit: ON