我正在尝试将与串行设备通信的旧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);