正在进行安全检测...

发布时间:2023-10-12 14:37:56   来源:文档文库   
字号:
WindowsAPI串口编程参考(一)WindowsAPI串口通信编程概述Windows环境下的串口编程与DOS环境下的串口编程有很大不同。Windows环境下的编程的最大特征之一就是设备无关性,它通过WindowsWindows封装了Windows的通信机制,这种方式称为通信APIWindows程序可以利用Windows通信API进行编程,不用对硬件直WindowsWOSA,WindowsOpenServicesArchitectures)。早期的Windows3.xWindows9x/NT/2000的通信API有很大不同,在16位的串行通信程序中,一般使用16位的WindowsAPI通信函数。为使大家对串口通信有一全面的理解,下面简单介绍一下16位的WindowsAPI通信函数:1打开和关闭串口OpenComm(打开串口资源,并指定输入、输出缓冲区的大小(以字节计);CloseComm(关闭串口;例:intidComDev;idComdev=OpenComm(COM1”,1024512CloseComm(idComDev;(2初始化串口BuildCommDCB(setCommState(填写设备控制块DCB,然后对已打开的串口进行参数配置,例:DCBdcb;BuildCommDCB(COM1:2400,n,8,1,&dcb;SetCommState(&dcb;(3对串口进行读写ReadCommWriteComm(对串口进行读写操作,即数据的接
收和发送。例:char*m_pReceive;intcount;ReadComm(idComDev,m_pReceive,count;Charwr[30];intcount2;WriteComm(idComDev,wr,count2;通过对以上的描述我们可以看出,16位以下的串口通信程序最大的特点就在于串口等外部设备的操作有自己特有的API函数。Windows9x/NT/2000中的API一般都支持32位的操作,因此又称为Win32API。为了在上述系统中实现串行数据传送,可以使用Win32通信APIWin32通信API基本上是一个串行端口API,不是很适合于局域网(LAN)通信。虽然在线路上发送数据之前,LAN常将数据位串行化,这和窗口或调制解调器发送数据之前所作的工作一模一样,但局域网使用的线路的位数通常比串口少,而且还使用与串口协议很少有类似之处的访问、路由、安全性和纠错协议。局域网通信所需要的协议层使得Win32通信API对于这些应用来说很不理想。因此,在网络通信和连接方面,TCP/IP协议要比Win32通信API适合一些。Windows操作系统是一个可抢占式的操作系统,所以Windows应用程序常常有被别的程序抢占时间片的可能,因此Win32通信API不能用于实时通信。实时通信的质量与时间密切相关。例如,数字化音频数据是实时数据,因为话音的质量依赖于播放它的速率。在录制音频时,它就以某个速度被数字化了,该速度就是人们所熟知的采样速率。声音必须以相同的采样率重放,否则听起来就会太慢或太快。实际中的视频播放,也不是实时播放,那仅仅是存放在缓冲中的那部分数据。因此,不需要许多协议层的交互式、非实时的通信可以采用Win32通信API来实现。Win32通信API把串口操作(以及并口等)和文件操作统一起来了,使用类似的操作来实现。

本文来源:https://www.2haoxitong.net/k/doc/76d8bb2532b765ce0508763231126edb6e1a7674.html

《正在进行安全检测....doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式