小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

VC++多串口控制解決方案API版

 bluecrystal 2006-08-10
在現(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ù)的顯示界面。

 


圖2 串口收發(fā)數(shù)據(jù)ASCII顯示界面

 


圖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è)置。詳見示例工程。

 


圖4 應(yīng)用工程連接設(shè)置界面

  三、 多串口DLL主要函數(shù)使用說明

  1.BOOL OnCommsCreate(CWnd* pParentWnd);

  創(chuàng)建串口,本DLL同時(shí)創(chuàng)建32個(gè)串口。pParentWnd為窗口指針,一般為this。

  2. BOOL OnComportOpen();

  根據(jù)串口設(shè)置文件中的設(shè)置參數(shù),打開多串口。

  3.void OnCommSend(unsigned int uiCom, CString sSendData, unsigned int uiKind);

  往指定串口發(fā)送數(shù)據(jù)。其中uiCom為指定的串口,注意串口1的uiCom為0;sSendData為要發(fā)送的字符串; uiKind: 發(fā)送數(shù)據(jù)類型:0:原始數(shù)據(jù) 1:加回車符 2:加校驗(yàn)和。

  4.void OnMscommsSet();

  打開串口設(shè)置界面,改變串口設(shè)置,并保存到設(shè)置文件中。

  5.BOOL OnComportTimerProcess(CString strProcess[MaxPort]);

  判斷串口接收的一組數(shù)據(jù)是否已經(jīng)接收完。

  6. BOOL OnPopupDialog();

  打開串口收發(fā)數(shù)據(jù)顯示調(diào)試界面。

 

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多