- 5
- 0
- 约3.99千字
- 约 3页
- 2018-03-09 发布于河南
- 举报
基于Win95的VB6串口通信程序
基于Win95的VB6串口通信程序
Visual Basic6.0(以下简称VB)以其简单易学、32位面向对象的程序设计等特点,倍受广大计算机开发者的青睐,已广泛地应用于各个领域;在实时监测系统中串行端口通信是一项基础功能,因此我们使用VB5编写了实时水库水文自动监测系统的后台机软件。本文就Windows95环境中采用VB5设计串行端口通信程序进行讨论并给出实例。 一般用VB开发串行通信程序有两种方法:一是利用Windows的通信API函数;另一种是采用VB标准控件Mscomm来实现。 Windows95的通信API Windows95中的串口通信API函数不同于Windows3.x中的OpenComm、CloseComm、ReadComm、WriteComm,而是采用硬件与文件通用的函数CreateFile、ReadFile、WriteFile、CloseHandle,该类函数 更具有一般性,并且可以用EscapeCommFunction函数实现底层硬件操作,比如:SETXOFF、CLRDTR等。 利用API编写串口通信程序较为复杂,需要掌握大量通信知识,其优点是可实现的功能更丰富、应用面更广泛,更适合于编写较为复杂的低层次通信程序。采用这种方法编写串行端口通信程序一般可分为以下几个过程: 1. 初始化串行端口 首先用CreateFile函数打开指定串口,置参数中访问类型为GENERIC_READ|GENERIC_WRITE、共享模式为0、创建标志为OPEN_EXISTING、模板句柄为NULL。 2. 配置串口 Windows95的串口配置比Windows3.x较为复杂,但其功能更强大,对一般程序可使用CommConfigDialog函数以对话框方式设置波特率、数据位、奇偶校验、停止位和流控制方式,并且可以恢复缺省值。 3. 超时控制 为了防止意外情况使串口读写无休止地等待,Windows95提供了超时设置,这是由COMMTIMEOUTS结构定义的,通过调用GetCcommTimeOuts函数获得当前的设置,用SetCommTimeOuts函数来完成设置。 4. 数据传输 读写串行端口与读写文件采用的函数相同,即ReadFile、WriteFile, 读写操作可分四种方式:查询方式、同步I/O、异步(后台)I/O和事件驱动I/O。 5. 关闭串口 程序的终止可以自动关闭串口,也可用函数CloseHandle(),以便释放所独占资源。 VB通信控件Mscomm Mscomm控件提供了功能完善的串口数据的发送和接收功能,Mscomm控件具有两种处理方式:1事件驱动方式:由Mscomm控件的OnComm事件捕获并处理通信错误及事件;2查询方式:通过检查CommEvent属性的值来判断事件和错误。 Mscomm控件的通信功能实现,实际上是调用了API函数,而API函数是由Comm.drv解释并传给设备驱动程序执行的,对于VB程序开发者只需知道Mscomm控件的属性和事件的用法即可以实现串口的操作。 以下是Mscomm控件的主要属性和方法: 1)CommPort:设置或返回串行端口号,其取值范围为1~99,缺省为1。 2)Setting设置或返回串行端口的波特率、奇偶校验位、数据位数、停止位。如:Mscomm.Setting=9600,N,8,1。 3) PortOpen:打开或关闭串行端口,格式为:Mscomm.PortOpen={TRUE|FALSE}。 4)InBufferSize:设置或返回接收缓冲区的大小,缺省为1024字节。 5)InBufferCount:返回接收缓冲区内的等待读取的字节个数,可通过设置该属性为0来清除接收缓冲区。 6)RThreshold:该属性为一阀值,它确定当接收缓冲区内字节个数达到或超过该值后就产生代码为MSCOMM_EV_RECEIVE的OnComm事件。 7)InputLen:设置或返回接收缓冲区内用Input读入的个数。若取0,则INPUT读取整个缓冲区的内容。 8)Input:该属性表示从接收缓冲区移走一串字符。 9)OutBufferSize:设置或返回发送缓冲区,缺省为512字节。 10)OutBufferCounter:返回发送缓冲区内等待发送的字符数,可用来清空缓冲区。 11)Output:向发送缓冲区传送一字符串。 12)EOFEnable:若置TRUE,则当输入中出现EOF,就停止输入并产生OnComm事件。 如果在通信过程中发生错误或事件,就会引发OnComm事件并且改变属性值,由CommEvent属性代码反映错误类型,在通信程序的设计中可根据该属
您可能关注的文档
最近下载
- 《可持续供应链风险识别与管理》.docx VIP
- 冷损伤.ppt VIP
- SA泵性能曲线(三川).pdf VIP
- 2025-2026学年初中物理八年级上册(2024)北师大版(2024·郭玉英)教学设计合集.docx
- 8【倍福PLC中文手册】2024-11-12 TE1010 诊断工具:CPU的实时核占用的图形化显示 TwinCAT3_Realtime Monitor.pdf VIP
- 餐厅服务员培训手册服务员基础知识.doc VIP
- 7【倍福PLC中文手册】2025-07-29 TwinCAT3 TF5060 授权Function:轴组位置序列,先入先出手册 NC FIFO AXES.pdf VIP
- 2000年河北中考语文试题.doc VIP
- 3【倍福PLC中文手册】2025-01-23 EL1409 EtherCAT DI端子模块:经济型,16 通道数字输入,24VDC,3ms,PNP 文件资料.pdf VIP
- 2026年新版物理中考压轴题天津.doc VIP
原创力文档

文档评论(0)