WEB开发网
开发学院软件开发VC 使用Win32创建串口通讯程序 阅读

使用Win32创建串口通讯程序

 2010-06-29 20:42:40 来源:WEB开发网   
核心提示:DWORD BaudRate :波特率 (默认 = 9600)BYTE StopBits :0,1,2 = 1, 1.5, 2 (默认 = 0)BYTE Parity :0-4= 无, 奇, 偶, 标志, 空格 (默认 = 0)BYTE ByteSize :数据位, 4-8 (默认 = 8)对于典型的通讯,建议程序员使

DWORD BaudRate :

波特率 (默认 = 9600)

BYTE StopBits :

0,1,2 = 1, 1.5, 2 (默认 = 0)

BYTE Parity :

0-4= 无, 奇, 偶, 标志, 空格 (默认 = 0)

BYTE ByteSize :

数据位, 4-8 (默认 = 8)

对于典型的通讯,建议程序员使用默认值。图3所示,Watch对话框显示了典型通讯使用的默认值。

图3:串口配置

保存配置

下一步是将已经修改的配置保存到设备控制中。调用SetCommState API函数保存配置。SetCommState函数设备控制块(DCB结构)配置通讯设备。该函数重新初始化所有的硬件控制设定,但不清空输入输出队列。代码如下所示:

if (SetCommState(handlePort_,&config_) == 0)
{
 AfxMessageBox("Set configuration port has problem.");
 return FALSE;
}

设置通讯超时

开启端口的最后一步是通过使用COMMTIMEOUTS数据结构和调用SetCommTimeouts函数进行通讯超时设置。如下代码所示:

// COMMTIMEOUTS对象
COMMTIMEOUTS comTimeOut;
 
// 接收时,两字符间最大的时延
comTimeOut.ReadIntervalTimeout = 3;
// 读取每字节的超时
comTimeOut.ReadTotalTimeoutMultiplier = 3;
// 读串口数据的固定超时
// 总超时 = ReadTotalTimeoutMultiplier * 字节数 + ReadTotalTimeoutConstant
comTimeOut.ReadTotalTimeoutConstant = 2;
// 写每字节的超时
comTimeOut.WriteTotalTimeoutMultiplier = 3;
// 写串口数据的固定超时
comTimeOut.WriteTotalTimeoutConstant = 2;
// 将超时参数写入设备控制
SetCommTimeouts(handlePort_,&comTimeOut);

上一页  1 2 3 4  下一页

Tags:使用 Win 创建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接