|
在現(xiàn)代的各種實(shí)時(shí)監(jiān)控系統(tǒng)和通信系統(tǒng)中,在Windows 9X/NT下利用VC++對RS-232串口編程是常用的手段。 本程序以動(dòng)態(tài)連接庫(DLL)形式實(shí)現(xiàn)對多串口的操作,MSCOMM串口通訊控件在基于對話框的程序中很好使用,但在基于文檔的程序不能直接使用該控件,且生成的可執(zhí)行文件不能適用于不同的計(jì)算機(jī)。 Windows通信一般都以WOSA(Windows Open Services Architecture,即Windows開放式服務(wù)體系)模型為基礎(chǔ),在此模型中位于上層的應(yīng)用程序通過調(diào)用各種通信API(Application Programming Interfaces,即應(yīng)用程序接口)與位于下層的設(shè)備驅(qū)動(dòng)程序進(jìn)行數(shù)據(jù)交換。Windows對串行口的讀寫也不例外,通過調(diào)用Win32的串口通信API函數(shù),即可編寫串行通信程序。本DLL是基于API函數(shù)的。 一、 多串口DLL功能 ?。ㄒ唬?串口參數(shù)設(shè)置 對RS-232-C串行端口進(jìn)行參數(shù)配置是使用串口進(jìn)行通訊的必要條件。而且由于場合不同、用途、功能的不同對串口也采取不同的配置方式,為了使本程序更靈活,適應(yīng)面更廣,采取將所有的可能參數(shù)都預(yù)先設(shè)置在幾個(gè)組合框中,可以在程序運(yùn)行后隨時(shí)更改設(shè)置。 圖1 串口參數(shù)設(shè)置界面 ![]() 串口號: 自動(dòng)檢測計(jì)算機(jī)存在的串口,但只能控制從COM1到COM5,能滿足絕大多數(shù)人的需求。 是否使用:如果選中,則表示要對該串口進(jìn)行初始化,以及收發(fā)控制。否則表示對計(jì)算機(jī)存在的串口不操作。 波特率:從1200bps到57600bps。 校驗(yàn):有無校驗(yàn)(NOPARITY)。 數(shù)據(jù)位:7位或是8位。 停止位:1位、1.5位或是2位。 流控制:有無流控制(flow)。 (二) 串口收發(fā)數(shù)據(jù)調(diào)試顯示
在進(jìn)行串口操作時(shí),尤其是在調(diào)試期間,需要知道串口的收發(fā)數(shù)據(jù)。本DLL提供串口收發(fā)數(shù)據(jù)的顯示界面。
![]() 圖3 串口收發(fā)數(shù)據(jù)16進(jìn)制顯示界面 (三) 串口參數(shù)設(shè)置文件 串口參數(shù)設(shè)置文件名為MscommSet.ini,該文件保存在工程工作目錄下,如果沒有該文件,串口按缺省值設(shè)置,在設(shè)置串口參數(shù)后,自動(dòng)生成該設(shè)置文件。其內(nèi)容如下: [0串口信息] use=1 baud=2400 port=1 databits=8 stopbits=1 flow=0 parity=N [1串口信息] use=1 baud=2400 port=2 databits=8 stopbits=1 flow=0 parity=N [2串口信息] use=0 baud=2400 port=1 databits=8 stopbits=1 flow=0 parity=N [3串口信息] use=0 baud=2400 port=4 databits=8 stopbits=1 flow=0 parity=N [4串口信息] use=0 baud=2400 port=1 databits=8 stopbits=1 flow=0 parity=N 二、 多串口DLL的作用
本DLL 提供三個(gè)文件SerialAPIDLL.dll,SerialAPIDLL.lib和MultiSerialAPI.h。在應(yīng)用時(shí),要把這三個(gè)文件拷貝到相應(yīng)的目錄下,并且要作如圖4的設(shè)置。詳見示例工程。
三、 多串口DLL主要函數(shù)使用說明 |
|
|