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
艦船人員編制的設置與控制
主站蜘蛛池模板: 免费jizz在线播放| 欧美成人综合视频| 久久精品亚洲专区| 久久午夜夜伦鲁鲁片无码免费| 九色视频最新网址| 亚洲国产91人成在线| 日本人真淫视频一区二区三区| 99久久精品免费看国产免费软件| 国产a在视频线精品视频下载| 本亚洲精品网站| 亚洲无线一二三四区男男| 久久综合国产乱子免费| 在线观看无码av五月花| 久久免费成人| 欧美一区二区三区不卡免费| 欧美日本在线播放| 99久久精品免费看国产电影| 永久免费无码日韩视频| 91精品国产91欠久久久久| 亚洲精品无码不卡在线播放| 国产精品无码久久久久久| 又猛又黄又爽无遮挡的视频网站| 美女视频黄频a免费高清不卡| 欧美成人一级| 国产成人精品在线1区| 1769国产精品免费视频| 高清无码一本到东京热| 毛片久久网站小视频| 91香蕉国产亚洲一二三区| 国产亚洲欧美在线中文bt天堂| 欧美三级自拍| 欧美国产日本高清不卡| 91啦中文字幕| 人人澡人人爽欧美一区| 国产精品视频白浆免费视频| 91视频99| 中文字幕在线视频免费| 国产啪在线| 中文字幕佐山爱一区二区免费| 国产va在线观看免费| 22sihu国产精品视频影视资讯| 婷婷色一二三区波多野衣| 国产精品综合色区在线观看| 亚洲视频免费在线| 久久久久人妻精品一区三寸蜜桃| 久久国产精品嫖妓| 国产特级毛片| 毛片免费试看| 日韩欧美色综合| 国产亚洲精品91| 精品国产福利在线| 麻豆国产原创视频在线播放| 亚洲午夜天堂| www.国产福利| 国产网站一区二区三区| 国产无码精品在线| 五月婷婷综合网| 97影院午夜在线观看视频| 久久综合结合久久狠狠狠97色 | 亚洲中文字幕手机在线第一页| 免费国产一级 片内射老| 国产jizzjizz视频| 欧美精品亚洲精品日韩专区| 亚洲日韩高清在线亚洲专区| 欧美视频在线观看第一页| 日韩精品一区二区三区中文无码| 喷潮白浆直流在线播放| 久久国产精品娇妻素人| 日韩午夜伦| 久久久久亚洲精品无码网站| 成人在线天堂| 国产女同自拍视频| 国产乱人免费视频| 草草影院国产第一页| 国产第二十一页| 欧美成人aⅴ| 免费观看无遮挡www的小视频| 国内精品手机在线观看视频| AV色爱天堂网| 国产福利在线免费观看| 国产免费网址| 成人在线综合|