我正在尝试将与串行设备通信的旧C应用程序移植到C#中。
设置串行通信时,C应用程序将设置以下字段:

newtio.c_iflag = IGNPAR;
newtio.c_oflag = 0;


我没有看到在C#中复制此内容的方法,并且我相信这会导致发送“ 9C”时串行设备的行为有所不同。

最佳答案

https://msdn.microsoft.com/en-us/library/system.io.ports.parity(v=vs.110).aspx

Public  enum Parity
Even    Sets the parity bit so that the count of bits set is an even number.
Mark    Leaves the parity bit set to 1.
None    No parity check occurs.
Odd     Sets the parity bit so that the count of bits set is an odd number.
Space   Leaves the parity bit set to 0.


您应该对None感兴趣

使用此构造函数创建端口:
https://msdn.microsoft.com/en-us/library/system.io.ports.serialport(v=vs.110).aspx

public SerialPort(
    string portName,
    int baudRate,
    Parity parity
)


使用以下方法设置奇偶校验值:
https://msdn.microsoft.com/en-us/library/system.io.ports.serialport.parity(v=vs.110).aspx

_serialPort.Parity = SetPortParity(_serialPort.Parity);

08-16 23:57