ReadIntervalTimeout:指定時間最大值(毫秒),充許接收的2個字節間有時間差。也就是說,剛接收了一個字節后,等了ReadIntervalTimeout時間后還沒有新的字節到達,就認為本次讀串口操作結束(后面的字節等下一次讀取操作來處理)。
波特率:單片機或計算機在串口通信時的速率。指的是信號被調制以后在單位時間內的變化,即單位時間內載波參數變化的次數,如數據傳送速率為240b/s,而每個字符格式包含10位(1個起始位,1個停止位,8個有效數據位),這時的波特率為240 baud (波特),比特率(有效數據位的傳送速率)為240*10=2400 bps(比特每秒)。(參見百度百科).
BaudRate:Specify how fast information should transfer through the port, in bits per second.(來自MSDN).注意,按照這里的說法,是bit/s,因此百度百科的說法是錯誤的.
由波特率的定義可以推斷:從波特率計算ReadIntervalTimeout:1*1000/badRate=ReadIntervalTimeout,即:
可見,設置成10ms,已經能應付所有情況了.
對於異步讀取操作,設置等待時間無限長,ReadIntervalTimeout為10ms是一個合理的值.
根據定義,ReadTotalTimeoutMultiplier可以設置成相同的值,而ReadTotalTimeoutConstant應當設置想要的等待時間.比如假設發出讀取命令之內10s鍾內沒有讀到就返回,則應當設置為10000ms,即10s.