微机与8142数字仪表的串口通信
1989年我公司引进了一台静态轨道衡称量系统,该系统软件是采用BASIC语言编制的,是在DOS环境下运行的。该系统软件使用日期截止到1999年12月31日,存在着2000年问题,随着Windows98的日益普及,在Windows98下开发应用软件已成必然趋势,为此,我们在Windows98的环境下成功地开发了微机静态轨道衡称量系统。在编制称量程序中,利用Visual Foxpro 6.0所提供的通信控件编制了串行通信程序,实现了微机实时显示所接收的数字仪表数据,并与数字仪表显示保持同步,系统工作原理如图1。
一般用Visual Foxpro 6.0开发串行通信程序有两种方法,一种是利用Windows的通信API函数;另一种是采用Visual Foxpro 6.0通信控件Mscomm来实现。由于利用Windows的通信API函数编写较为复杂,不但要了解许多复杂的API函数,而且需要掌握大量的通信知识,在此不作介绍。
1 Visual Foxpro 6.0通信控件Mscomm的简介
Mscomm控件提供了功能完善的串口数据的接收和发送功能,具有一系列标准通信属性和方法, Mscomm控件具有两种处理方式:
(1)事件驱动方式:由Mscomm控件的OnComm事件捕获并处理通信错误及事件。
(2)查询方式:通过检查CommEvent属性的值来判断事件和错误。对于Visual Foxpro 6.0程序开发者只需知道Mscomm控件的属性和事件的用法即可以实现串口的操作。
1.1 与程序设计有关的Mscomm控件属性
(1) CommPort:设置或返回串行端口号,其取值范围为1~16,缺省为1。格式为Mscomm.Comm=Port-Number。
(2) Setting设置或返回串行端口的波特率、奇偶校验位、数据位数、停止位。格式为: Mscomm.Setting=ParaString。
(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) OutBufferCount:返回发送缓冲区内等待发送的字符数,可用来清空缓冲区。
(11) Output:向发送缓冲区传送一字符串。
(12) EOFEnable:若置TRUE,则当输入中出现EOF,就停止输入并产生OnComm事件。
1.2 Mscomm控件的OnComm事件
相关文章
- 2022-06-15使用DS89C450对XilinxPROM的在系统编程设计
- 2022-07-18嵌入式片上存储器有效使用的方法
- 2024-05-11分布式流量计校验系统的研制
- 2024-06-06地下铁道的振动及其控制措施的研究
- 2022-07-26基于模型识别技术的高温微型压力传感器
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。