999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VC++的串口通信實現方法

2018-09-07 06:06:34竇萌萌
信息記錄材料 2018年10期
關鍵詞:程序設置

竇萌萌

(鶴壁職業技術學院 河南 鶴壁 458030)

1 引言

這幾年伴隨時代的快速發展與社會經濟的提升,我國有關控制系統的應用也越來越廣、規模逐步擴大,這些系統所包含的功能模塊也日益增多。由此可知,控制系統中各組成模塊能夠進行有效通信能夠直接影響到該系統工作的協調性與安全穩定性。而控制系統各類通信方法中,串行通信是最安全可靠、最常應用的一種方式,其具備靈活性、操作簡單、具有更快的代碼執行速度等優點。

2 當前技術實現串口通信的普通過程

當前在項目實際設計中,獲得串口通信的過程如圖所示(圖1:當前技術實現串口通信的普通過程),通常是以下幾步:

圖1 當前技術實現串口通信的普通過程

(1)由上圖可知,首先我們需要根據有關協議初始化對應的設置,然后將串行口進一步打開(即:向Windows傳達此串口需要該程序進行應用的指令),然后將此串口進行封鎖,禁止其他程序來應用。

(2)對該串口設置相應的配置。

(3)借助該串口,在上面將有關數據信息進行往返傳輸,與此同時在實際傳輸的時候對各項設置進行校驗。

(4)當該串口使用完畢后,確定對其不再有需求就將其關閉、進行串口釋放,讓其能夠為其他程序提供應用服務。

3 基于VC++的串口通信3種常見實現方法

Microsoft Visual C++是一種很實用的開發平臺,為各大用戶人群提供了各種方法來有效控制其串口通信。這種開發平臺不需要用戶熟悉其實際硬件原理,具有較強的可移植性以及適應性。

3.1 借助MFC(微軟基礎類庫)來進行編程從而達到串口通信目的

Win32系統進一步擴展了文件概念,從而使得文件、磁盤、設備以及相關管道都能夠當作文件。因此我們可以借助MFC(Microsoft Foundation Classes)中的CFile類來操作有關串口。同時Win32系統里的I/O函數輸入輸出能夠實現重疊式,從而進一步增強了時效性。正常情況下利用Microsoft Foundation Classes來實現串口通信的主要編程步驟為以下幾步:

(1)在MainFrm.cpp中將相應的全局變量進行有效定義

HANDLEhCom;//該句柄用于將相關串口進行打開準備

(2)將串口正式打開

Windows通信從CreateFile()函數開始正式打開相應的串口,然后在CreateFile()處對此串口的對應屬性與設備進行操作,同時反饋回某種句柄,其能夠在之后的通信過程中被應用。

(3)將串口的各項參數設置進行初始化

在打開對應串口句柄函數之后,我們一般要初始化其各項參數設置,如:停止位數、流控協議、波特率等等。相對常見的函數設置為以下幾種:

GetCommState(hCom,&dcb)://該函數能夠設置此串口原本的參數;

Create://該函數能夠將控件對象進行創建并有效初始化;

SetInBufferSize://該函數能夠設置串口接收緩存區的最高范圍;

SetOutBufferSize://該函數能夠設置串口傳輸緩存區的最高范圍;

SetInputLen://該函數能夠對此串口接收區的信息長度進行設置;

SetPortOpen://該函數能夠對串口進行打開以及關閉操作,若將其設置為TRUE即為打開指令,若將其設置為FALSE即為關閉指令。

(4)對串口的API函數進行讀寫操作

打開對應的串口之后,我們可以對此串口的API函數(Application Programming Interface)進行讀寫等操作。

(5)串口的API函數進行關閉

由于通信串口不屬于共享資源,因此當串口被打開使用完畢后一定要記得將其進行關閉,若CreateFile()函數返回數據不是0,則意味著調用成功。

3.2 借助VB的MSComm有關控件來進行編程從而達到串口通信目的

MSComm控件,其英文全稱為:Microsoft Communication Control。該控件是在Component Object Model的基礎上開發出的一種事件驅動通信接口,這種控件主要用于串口通信編程,編程人員不用花費精力去掌握復雜的API函數,操作簡便靈活,具有很好的穩定性與高效性。

(1)MSComm控件所具備的功能與運行原理

MSComm控件能夠有效運行串行數據信息的接收以及發送功能,其即包含WindowsAPI系統中所有串行通信的函數功能,還能夠有效提供更全面的對象屬性,從而滿足各種用戶人群的編程需要。MSComm控件能夠有效屏蔽實際通信環節中的底層操作,有關用戶只要做好簡單設置、對相關事件屬性進行監視,就能夠有效的進行串口編程,從而與有關對象實現串行通信、信息交換,在這個過程中還能夠科學監視可能存在的某些錯誤與事件。

(2)MSComm控件實現通信的2種常見方式

①MSComm控件借助事件驅動方式實現串口通信

事件驅動能夠有效處理串行端口的有關交互作用,通常在事件驅動進行過程中根據其程序需要獲得通知(如:處于Request ToSend或者CarrierDetect線上時程序存在某個字符發生變化),這種情況下可以借助MSComm控件中的OnComm事件有效處理其對應的通信事件。OnComm還能夠科學檢測其通信錯誤,在實際編程中利用OnComm事件有關函數能夠實現所需的功能,這種方式具有較高可靠性與事實性,在日常工作中使用廣泛。

②MSComm控件借助查詢方式實現串口通信

這種方式具體是指:定時或者不定時的在實際用戶程序中對MSComm控件中的有關CommEvent屬性有沒有出現變化,從而做出相應的措施。該方式本質還是屬于事件驅動,只不過在某種環境下查詢方式更簡單快捷。如:當處理器相對空閑或有關應用程序相對偏小的情況下,更建議使用查詢方式。該方式具有較強的可控性與穩定性,但需要注意的是其存在某種程度的時間間隔,當有關數據信息變化相對較快的時候,若對每個串口進行查詢有可能會導致信息流失。同時該方式有時還會占用較多的系統資源,因此適用于應用程序短小且能夠自保持的情況。

③借助Visual C++運行庫函數從而達到串口通信目的

VC++其英文全稱為:Microsoft Visual C++,借助其進行通信編程其實是寫入以及讀出Universal Asynchronous Receiver/Transmitter內部寄存器中有關內容的操作,在實際進行串行通信前,我們需要參考相關設備的各項參數,對雙方的串口通信方式進行約定,如:設置停止位、奇偶位以及波特率。對數據信息的傳輸格式與Universal Asynchronous Receiver/Transmitter有關操作方式進行確定。借助Microsoft Visual C++有關通信函數outp()以及inp()實現通信目的。

其次,我們也可以借助第三方的通信類來進行串口通信的編寫,這種方式具有很簡潔的接口,最后編寫出來的程序相對比較靈活,將其與Microsoft Visual C++進行結合會得到更高的運行效率。

4 結語

Microsoft Visual C++是一種很實用的開發平臺,為各大用戶人群提供了各種方法來有效控制其串口通信。這種開發平臺不需要用戶熟悉其實際硬件原理,具有較強的可移植性以及適應性。

本文基于VC++環境平臺,介紹了利用當前主流技術實現串口通信的詳細過程,同時向讀者簡單闡述了基于VC++的串口通信3種常見實現方法,如:借助MFC(微軟基礎類庫)來進行編程是程序員使用最廣泛的實現方式,可以對不同種類的外部設備實現串口通信,但對硬件要求較高;借助Visual C++運行庫函數則正好跟MFC方法相反,前者實現串口通信原理相對容易,對硬件要求不高,但此消彼長,程序的靈活性和實用性會受到影響;而第3種實現方法,借助 VB的MSComm有關控件來進行編程實現串口通信也比較容易實現,不需要程序員過于關注硬件內部的實現原理,但與MFC實現方法相比,靈活性等方面也差強人意。

總之,在實際工作中要具體問題具體分析,結合實際需求,綜合考慮程序的時間復雜度和空間復雜度等因素,有所取舍,適當選擇,最終實現Win32系統的串口通信。

猜你喜歡
程序設置
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
7招教你手動設置參數
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
艦船人員編制的設置與控制
主站蜘蛛池模板: 伊人久久大线影院首页| 无码网站免费观看| 久久综合伊人 六十路| 亚洲精品在线观看91| 91久久国产综合精品女同我| 毛片网站观看| 国产欧美日本在线观看| 日韩一级二级三级| 五月天福利视频| 日本欧美精品| 亚洲第一区在线| 欧美日韩一区二区在线免费观看| 国产精品亚洲片在线va| 99视频在线免费| 毛片久久久| 欧美精品1区| 国产毛片不卡| 人妻丰满熟妇啪啪| 亚洲天堂成人在线观看| 国产色爱av资源综合区| 亚洲毛片在线看| 久久精品国产91久久综合麻豆自制| 欧美日韩在线国产| 天天爽免费视频| 99在线观看视频免费| 久久精品国产国语对白| 免费可以看的无遮挡av无码| 精品国产一区91在线| 国产福利小视频高清在线观看| 日本午夜三级| 中文字幕久久精品波多野结| 亚洲成人在线免费观看| 亚洲一区色| 97久久人人超碰国产精品 | 国产网友愉拍精品| 精品無碼一區在線觀看 | 亚洲色图欧美一区| 亚洲欧美国产视频| 真实国产精品vr专区| 人妻中文久热无码丝袜| 精品91视频| 国产精品亚洲综合久久小说| 国产乱人免费视频| 欧美a√在线| 日韩在线影院| 亚洲天堂久久久| 无码内射在线| 精品夜恋影院亚洲欧洲| 理论片一区| 99久久精品免费看国产电影| 1级黄色毛片| 91九色视频网| 一级高清毛片免费a级高清毛片| 国产农村妇女精品一二区| 亚洲欧美在线综合一区二区三区| 青青草国产在线视频| 伊人91在线| 在线视频亚洲欧美| 国产精品成| 久久久久九九精品影院| 亚洲天堂网视频| 国产精品19p| 久久毛片免费基地| 欧美第一页在线| 国产自视频| 亚洲V日韩V无码一区二区| 在线欧美国产| 欧美日韩精品综合在线一区| 四虎永久在线| 日韩无码视频网站| 色偷偷一区| 国产在线98福利播放视频免费| 波多野结衣一区二区三区四区视频| 色久综合在线| 在线五月婷婷| 日韩 欧美 小说 综合网 另类 | 永久成人无码激情视频免费| 久久久久久久久久国产精品| 亚洲一级毛片在线播放| 国产成人a在线观看视频| 欧美a在线视频| 精品在线免费播放|