电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Windows API在串口通信中的应用VIP免费

Windows API在串口通信中的应用_第1页
1/7
Windows API在串口通信中的应用_第2页
2/7
Windows API在串口通信中的应用_第3页
3/7
第1页共7页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共7页1引言在很多情况下,远程监控和工业自动化领域系统经常采用串并口通信编程,其中串行接口被广泛地应用于工程实践的长距离通信中。运用Windows通信API可以在Windows环境下进行串口编程,不用对硬件直接进行操作,并通过VC、VB和Delphi等语言进行调用,大大方便了对数据的处理。本文对和串口通信相关的32位WindowsAPI函数进行了介绍,并给出了相应的程序实例。2WindowsAPI简介Win32API作为Microsoft32位平台(包括:Windows9x,WindowsNT3.1/4.0/5.0,WindowsCE)的应用程序编程接口,它是构筑所有32位Windows平台的基石,所有在Windows平台上运行的应用程序都可以调用这些函数。API是windows的核心,从事Windows应用程序开发,离不开对Win32API函数的调用。只有充分理解和利用API函数,才能深入到Windows的内部,充分挖掘系统提供的强大功能和灵活性。3WindowsAPI相关串口通信函数介绍在32位的Windows系统中,串口通信是作为文件处理的,串口操作一般为的打开、关闭、读取、写入等操作,相应的WindowsAPI函数如下:3.1打开和关闭串口1打开串口在Windows系统中串口通信会话以调用CreateFile()函数开始。CreateFile()函数可以读写访问串口,并返回一个句柄,并在以后的端口操作中使用。1.CreateFile()函数声明如下:2.HANDLECreateFile(3.LPCTSTRlpszNAME,//指定要打开的串口逻辑名4.DWORDfdwAccess,//指定串口访问的类型5.DWORDfdwShareMode,//指定端口的共享属性6.LPSECURITY_ATTRIBUTESlpsa,//引用安全属性结构SECURITY_ATTRIBUTES7.DWORDfdwCreate,//指定CreateFile()正在被已有的文件调用时应采取的措施8.DWORDfdwAttrsAndFlags,//描述端口的各种属性9.HANDLEhTemolateFile//指向模板文件的句柄10.)11.其中安全属性结构SECURITY_ATTRIBUTES结构声明如下:12.typedefstruct_SECURITY_ATTRIBUTES{13.DWORDnLength;//指明该结构的长度14.LPVOIDlpSecurityDescriptor;//指向一个安全描述字符15.BOOLbInheritHandle;//表明句柄是否能被继承16.}SECURITY_ATTRIBUTES;17.调用CreateFile()函数打开COM1串口操作如下所示:18.HANDLEhCOM;19.DWORDDWeRROR;20.hCom=Creatfile(“COM1”,//对串口1进行操作21.GENERIC_READ|GENERIC_WRITE,//允许读和写22.0,//独占方式第2页共7页第1页共7页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共7页23.NULL,24.OPEN_EXISTING,25.FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,//重叠方式26.NULL27.);28.if(hCOM==INVALID_HANDLE_VALUE)29.{30.dwError=GetLastError();//处理错误31.}一旦串口处于打开状态,就可以分配一个发送缓冲区和接收缓冲区,并且通过调用SetupComm()函数实现其他初始化工作。1.SetupComm()函数声明如下:2.BOOLSetupComm(3.HANDLEHfile,//由CreatFile()返回的指向已打开端口的句柄句柄4.DWORDdwInQueue,//输入缓冲区大小5.DWORDdwOutQueue//输出缓冲区大小6.);2关闭串口关闭串口通过调用CloseHandle()函数关闭由CreatHandle()函数返回的句柄来完成。1.CloseHandle()函数声明如下:2.BOOLCloseHandle(3.HANDLEhObject//需关闭的设备句柄4.);3.2串口配置和串口属性在用CreatFile()函数打开串口后,系统将根据上次打开串口时设置的值来初始化串口,可以集成上次打开操作后的数值,包括设备控制块(DCB)和超时控制结构(COMMTIMEOUTS)。如果是首次打开串口,Windows会使用缺省配置。1串口配置Windows2000中使用GetCommState()函数获取串口的当前配置,使用SetCommState()函数重新分配串口资源的各个参数。1.GetCommState()函数声明如下:2.BOOLGetCommState(3.HANDLEhFile,//由CreatFile()函数返回的指向已打开的串口的句柄4.LPDCBlpDCB//指向device-controlblockstructure的指针5.);6.其中DCB的结构声明如下:7.typedefstruct_DCB{8.DWORDDCBlength;//DCB块大小9.DWORDBaudRate;//数据传输率10.DWORDfBinary:1;//二进制模式,不检验EOF11.DWORDfParity:1;//允许奇偶校验第3页共7页第2页共7页编号:时间:2021年x月x日书...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Windows API在串口通信中的应用

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部