SerialPort.Parity = SerialParity.Even无效,UWP + Raspberry pi + Windows 10 IoT核心+ C#

时间:2017-08-26 11:40:25

标签: uwp raspberry-pi windows-10-iot-core

我正在尝试通过串口从我的覆盆子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,偶数< / strong>奇偶校验,8个数据位,1个停止位和我的字符串从Rpi传输到PC而没有任何问题。

根据我的理解,在案例1和案例2中,必须传输字符串,在案例3中,PC终端可能会收到垃圾值。

我使用以下示例Serial UART Sample

这是一个已知问题还是我错过了什么。 请指南。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以尝试一些方法来找出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]
...
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

注意: 有两个参数( dcb.Parity dcb.fParity )控制奇偶校验设置,并且必须同时设置两个参数。