DCB dcb; //数据控制块结构的定义
GetCommState( hCom, & dcb); //串口原来的参数设置的读取
BuildCommDCB( "COM1:9600, N, 8,1", & dcb);//数据控制块DCB结构的创建
SetComm State( hCom, & dcb) ; //结构DCB的主要参数设置到COM1
(4)API函数用来读写串口
完成初始化工作之后,win32提供了WriteFile()与ReadFile()两个函数,它们可以帮助用来读取各种相关信息。可以采用WaitForSingleObject()来等待信号的结束并完成最长等待时间的设置,部分代码如下:
BOOL bReadStatus;
bReadStatus=ReadFile( m_hComm,buffer,dwBytesRead,&dwBytesRead,
&m_OverlappedRead );
if(!bReadStatus )
{
if( GetLastError()==ERROR_IO_PENDING )
{
WaitForSingleObject(m_OverlappedRead.hEvent,1000 );
return (int)dwBytesRead;
}
return 0;
}
return (int)dwBytesRead;
(5)API函数用来关闭串口
因为串口不可以同时共用,所以每次调用后需要关闭。CreateFile( )返回值不是0, 就表示调用成功。
调用CloseHandle()函数来关闭串口。例如:
……
CloseHandle ( m_hComm ); // 关闭串口,m_hComm是打开串口时返回的句柄
……[18]
2.4.2.2 MSComm 控件的运用来编程实现串口通信
通信控件MSComm(Microsoft Communication Control)是微软针对组件对象模型(COM)开发的事件驱动的全双工高级通信接口, 作为一个用于串行通信编程的Active控件, 它具有良好的稳定性以及运行效率。 C++数据采集系统打印软件设计(5):http://www.youerw.com/tongxin/lunwen_10965.html