首页 百科知识 -串口通讯实现的基本原理和方法

-串口通讯实现的基本原理和方法

时间:2022-02-19 百科知识 版权反馈
【摘要】:与以往DOS下串口通讯程序不同的是,Windows不提倡应用程序直接控制硬件,而是通过Windows操作系统提供的设备驱动程序来进行数据传递。换句话说,只需要设置和监视MSComm控件的属性和事件。发生通讯事件或错误时,将触发OnCom事件,CommEvent属性的值将被改变,应用程序检查CommEvent属性值并作出相应的反应。

与以往DOS下串口通讯程序不同的是,Windows不提倡应用程序直接控制硬件,而是通过Windows操作系统提供的设备驱动程序来进行数据传递。串行口在Win32中是作为文件来进行处理的,而不是直接对端口进行操作,对于串口通讯,Win32提供了相应的文件I/O函数与通讯函数,通过了解这些函数的使用,可以编制出符合不同需要的通讯程序。与通讯设备相关的结构有COMMCONFIG,COMMPROP,COMMTIMEOUTS,COMSTAT,DCB,MODEMDEVCAPS,MODEMSETTINGS共7个,与通讯有关的Windows API函数共有26个。下面介绍实现串口通讯的常用方法。

1.使用微软串口通讯控件MSComm 此方法适用于支持ActiveX/COM技术的任何语言,典型的支持语言有VC+、Delphi、PB、VB等。控件可以在VC++安装盘上找到,文件名为MsComm32.ocx。下面以PB为例说明程序实现:

首先,在PB的窗口中增加了该控件。增加控件后,开发人员只需要关心控件提供的对Windows通讯驱动程序的API函数的接口。换句话说,只需要设置和监视MSComm控件的属性和事件。无须关心具体如何将数据发送到串口的过程。现介绍几个常用属性(表1-1):

表1-1 几个常用属性

2.在PB中通过设置控件属性对串口进行初始化的实例

ole-comm.Object.Settings=9600,N,8,1

ole-comm.Object.CommPort=1

ole-comm.Object.InBufferSize=1024

ole-comm.Object.InputMode=1

ole-comm.Object.PortOpen=True

打开所需串口后,需要考虑串口通讯的时机。在接收或发送数据过程中,可能需要监视并响应一些事件和错误,所以事件驱动是处理串行端口交互作用的一种非常有效的方法。使用OnComm事件和CommEvent属性捕捉并检查通讯事件和错误的值。发生通讯事件或错误时,将触发OnCom事件,CommEvent属性的值将被改变,应用程序检查CommEvent属性值并作出相应的反应。

3.OnComm消息处理函数

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈