SPCOMM控件对串口参数的设置

 

   对于串口来说,一般大家都了解波特率,校验码,数据位之类的参数。然而在实际的数据传输中,有些参数也会影响数据的传输。现总结如下,以便大家查询。
在对串口进行编程时,可用portman对串口参数进行跟踪,提示如下:
15 0.00001006 IOCTL_SERIAL_SET_BAUD_RATE Serial0 SUCCESS Rate: 9600 
16 0.00000531 IOCTL_SERIAL_CLR_RTS Serial0 SUCCESS  
17 0.00000559 IOCTL_SERIAL_CLR_DTR Serial0 SUCCESS  
18 0.00000447 IOCTL_SERIAL_SET_LINE_CONTROL Serial0 SUCCESS StopBits: 1 Parity: NONE WordLength: 8 
19 0.00000279 IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13 
20 0.00000391 IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:0 Replace:80000000 XonLimit:1000 XoffLimit:1000
其中
Rate: 9600指的是波特率。
StopBits: 1停止位
Parity: NONE 校验位
WordLength: 8 数据长度
这些是主要参数,但往往XON:11 XOFF:13 Shake:0 Replace:80000000 XonLimit:1000 XoffLimit:1000这些参数对传输也有所影响。故对SPCOMM控件的参数设置总结如下:
Shake:
 SPCOMMR的DsrSensitivity=true 为40   
 SPCOMMR的DtrControl属性 
  DtrDisable=0
  DtrEnable=1
  DtrHandshake=2
 SPCOMMR的Outx_CtsFlow=true 为8
 SPCOMMR的Outx_DsrFlow=true 为10
Replace: 
        SPCOMMR的Outx_XonXoffFlow=true  为1
     SPCOMMR的Inx_XonXoffFlow=true  为2
 SPCOMMR的ReplaceWhenParityError=true  为4
 SPCOMMR的IgnoreNullChar=true  为8
 SPCOMMR的TxContinueOnXoff=true  高位为8
 SPCOMMR的RtsControl属性 
  RtsDisable=00
  RtsEnable=40
  RtsHandshake=80
  RtsTransmissionAvailable=C0

XonLimit:  SPCOMM的XOnLimit
XoffLimit: SPCOMM的XOffLimit
XOFF:      SPCOMM的XOffChar
XON:       SPCOMM的XOnChar

原文地址:https://www.cnblogs.com/zhangzhifeng/p/5546876.html