资源描述:
《vc串行通信相关函数列表》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、vc串行通信相关函数列表函数名作用1.CreateFile打开串口2.GetCommState检测串口设置3.SetCommState设置串口BuilderCommDCB用字符串中的值来填充设备控制块GetCommTimeouts检测通信超时设置SetCommTimeouts设置通信超时参数SetCommMask设定被监控事件WaitCommEvent等待被监控事件发生WaitForMultipleObjects等待多个被监测对象的结果4.WriteFile发送数据ReadFile接收数据GetOverlappedResult返回最后重叠(异步
2、)操作结果5.PurgeComm清空串口缓冲区,退出所有相关操作6.ClearCommError更新串口状态结构体,并清除所有串口硬件错误7.CloseHandle关闭串行口红颜色标出来的是我用到的一些函数,因为是最简单的应用,所以用到的函数也都是最最简单的一些,都是非常容易理解的。只是通过计算机向51发送指令所以连ReadFile()都没用到。省了很多事。。。。。。1.CreateFile()功能:打开串口设备函数原型HANDLECreateFile(LPCTSTRlpFileName,//串口名称字符串;如:"COM1"或"COM2"DWO
3、RDdwDesiredAccess,//设置读写属性(访问模式);一般为GENERIC_READ
4、GENERIC_WRITE,DWORDdwShareMode,//共享模式;"必须"为0,即不能共享LPSECURITY_ATTRIBUTESlpSecurityAttributes,//安全属性;一般为NULLDWORDdwCreationDistribution,//创建方式,串口设置必须设置此值;在这里"必须"为OPEN_EXISTINGDWORDdwFlagsAndAttributes,//文件属性和标志;在这里我们设置成FILE_FLAG
5、_OVERLAPPED,实现异步I/O关于//OverlappedI/O模型,自己上网搜了去理解吧,我自己也说不清楚,懵懂的很。HANDLEhTemplateFile//临时文件的句柄,通常为NULL);说明:如果调用成功,那么该函数返回文件的句柄,如果调用失败,则函数返回INVALID_HANDLE_VALUE。2.GetCommState()功能:获得串口状态BOOLGetCommState(HANDLEhFile,//handleofcommunicationsdeviceLPDCBlpDCB//addressofdevice-contr
6、olblockstructure);3.SetCommState()功能:设置串口状态BOOLSetCommState(HANDLEhFile,//handleofcommunicationsdeviceLPDCBlpDCB//addressofdevice-controlblockstructure);说明:在打开通信设备句柄后,常常需要对串行口进行一些初始化工作。这需要通过一个DCB结构来进行。DCB结构包含了诸如波特率、每个字符的数据位数、奇偶校验和停止位数等信息。在查询或配置置串行口的属性时,都要用DCB结构来作为缓冲区。调用GetCo
7、mmState函数可以获得串口的配置,该函数把当前配置填充到一个DCB结构中。一般在用CreateFile打开串行口后,可以调用GetCommState函数来获取串行口的初始配置。要修改串行口的配置,应该先修改DCB结构,然后再调用SetCommState函数用指定的DCB结构来设置串行口Forexample:DCBdcb;memset(&dec,0,sizeof(dcb));if(!GetCommState(HComm,&dcb))//获取当前DCB配置returnFALSE;dcb.BaudRate=CBR_9600;//修改数据传输率。。
8、。。这里还有很多参数可以修改,比如,停止位,有无校验等等,具体参见dcb结构。............if(SetCommState(hComm,&dcb))//设置新参数......//错误处理4.WriteFile()功能:来将资料写入Serialport.函数原型:BOOLWriteFile(HANDLEhFile,//handletofiletowritetoLPCVOIDlpBuffer,//写如字符串的首地址DWORDnNumberOfBytesToWrite,//要写如字符的个数LPDWORDlpNumberOfBytesWrit
9、ten,//实际写入字节数,为一个int型指针LPOVERLAPPEDlpOverlapped//i/o重构结构,我讲不清楚,sorry);说明:Re