在现代的各种实时监控系统和通信系统中,在Windows 9X/NT下利用VC++(www.cppentry.com)对RS-232串口编程(www.cppentry.com)是常用的手段。
本程序以动态连接库(DLL)形式实现对多串口的操作,MSCOMM串口通讯控件在基于对话框的程序中很好使用,但在基于文档的程序不能直接使用该控件,且生成的可执行文件不能适用于不同的计算机。
Windows通信一般都以WOSA(Windows Open Services Architecture,即Windows开放式服务体系)模型为基础,在此模型中位于上层的应用程序通过调用各种通信API(Application Programming Interfaces,即应用程序接口)与位于下层的设备驱动程序进行数据交换。Windows对串行口的读写也不例外,通过调用Win32的串口通信API函数,即可编写串行通信程序。本DLL是基于API函数的。
一、 多串口DLL功能
(一) 串口参数设置
对RS-232-C串行端口进行参数配置是使用串口进行通讯的必要条件。而且由于场合不同、用途、功能的不同对串口也采取不同的配置方式,为了使本程序更灵活,适应面更广,采取将所有的可能参数都预先设置在几个组合框中,可以在程序运行后随时更改设置。
图1 串口参数设置界面

串口号: 自动检测计算机存在的串口,但只能控制从COM1到COM5,能满足绝大多数人的需求。
是否使用:如果选中,则表示要对该串口进行初始化,以及收发控制。否则表示对计算机存在的串口不操作。
波特率:从1200bps到57600bps。
校验:有无校验(NOPARITY)。
数据位:7位或是8位。
停止位:1位、1.5位或是2位。
流控制:有无流控制(flow)。