1、超时设置结构体:
typedef struct _COMMTIMEOUTS {
DWORD ReadIntervalTimeout; /* Maximum time between read chars. */
DWORD ReadTotalTimeoutMultiplier; /* Multiplier of characters. */
DWORD ReadTotalTimeoutConstant; /* Constant in milliseconds. */
DWORD WriteTotalTimeoutMultiplier; /* Multiplier of characters. */
DWORD WriteTotalTimeoutConstant; /* Constant in milliseconds. */
} COMMTIMEOUTS,*LPCOMMTIMEOUTS;
(1)ReadIntervalTimeout是字符间读取时的超时时间,当读取串口数据时,一旦两个字符传输的时间差超过该时间,读取函数将返回现有的数据。
(2)ReadTotalTimeoutMultiplier和ReadTotalTimeoutConstant一起使用计算总超时:ReadTotalTimeoutMultiplier * 字节数 +ReadTotalTimeoutConstant = 总超时。
(3)、具体理解:
串口读取事件分为两个阶段(我以Win32 API函数ReadFile读取串口