freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于vc串口通信的數(shù)據(jù)發(fā)送實現(xiàn)(編輯修改稿)

2024-09-06 17:16 本頁面
 

【文章內容簡介】 章:VC串口編程及MSComm控件介紹Windows下串行通信與以往DOS下串行通信程序不同的是,Windows不提倡應用程序直接控制硬件,而是通過Windows操作系統(tǒng)提供的設備驅動程序來進行數(shù)據(jù)傳遞。串行口在Win 32中是作為文件來進行處理的,而不是直接對端口進行操作,對于串行通信,Win 32 提供了相應的文件I/O函數(shù)與通信函數(shù),通過了解這些函數(shù)的使用,可以編制出符合不同需要的通信程序。與通信設備相關的結構有COMMCONFIG ,COMMPROP,COMMTIMEOUTS,COMSTAT,DCB,MODEMDEVCAPS,MODEMSETTINGS共7個,與通信有關的Windows API函數(shù)共有26個,詳細說明可參考MSDN幫助文件。使用計算機編程控制串口有多種方法,有使用WinAPI函數(shù)編程、多線程編程以及MSComm控件編程。使用WinAPI進行串口通信程序設計,具有很強的靈活性,其缺點是編程復雜,讀者需要了解很多相關的函數(shù)。Windows是一種多任務的操作系統(tǒng)。Windows的一個進程包含一個或多個線程,所謂多線程,即在同一個程序中可以同時執(zhí)行多個任務。串口通信中,通過使用多線程技術可以提高程序的執(zhí)行效率。MSComm控件是微軟公司開發(fā)的專門用于串行通信的控件。它是高級語言編寫的串行通信程序和PC串口之間的橋梁。通過設置控件的幾個屬性,然后添加控件的事件響應代碼,就可以使串口按照要求進行工作。MSComm控件進行編程是常用的一種方法,它編程簡單,應用十分廣泛。MSComm控件大部分屬性都是可讀可寫的。在Visual C++中,對控件屬性的操作都是通過特定的函數(shù)來實現(xiàn)的,這些都是CMSComm類的成員函數(shù),當聲明了一個CMSComm類的實例后,就可以對該實例使用“.”操作符加成員函數(shù)的方法來訪問控件的屬性了。MSComm控件常用的屬性:CommPort屬性通過設置該屬性值,可以決定串口通信使用的串口編號。讀取該屬性值可獲得當前程序使用的串口編號。Void SetCommPort(short nNewValue)。//設置串口編號Short GetCommPort()。//返回正在使用的串口編號Settings屬性該屬性用于設置或者獲取串行通信的通信參數(shù)。通信參數(shù)包括波特率、奇偶校驗類型、數(shù)據(jù)位數(shù)及停止位數(shù)4個參數(shù)。Void SetSettings(LPCTSTR lpszNewValue)。//設置通信參數(shù)CString GetSettings()。//讀取當前串口通信參數(shù)使用字符串類型來設置該屬性,lpszNewValue的格式為:BBBB,P,D,S其中BBBB為波特率,有效數(shù)值為1300、600、1200、2400、9600(默認值)、14400、19200、28800、38400、56000、128000、256000;P為奇偶校驗類型,E為偶校驗、M為標記校驗、N(默認值)為無校驗、O為奇校驗、S為空格校驗;D為數(shù)據(jù)位數(shù),可以取值8(默認值);S為停止位數(shù),可以為1(默認值)、2。.注意:通信雙方的settings參數(shù)設置必須相同,否則無法進行通信。PortOpen屬性設置該屬性值可以打開或關閉串口。Void SetPortOpen(BOOL bNewValue)。//打開或關閉串口BOOL GetPortOpen()。//讀取端口的狀態(tài)bNewValue值為TRUE時打開串口,為FALSE時關閉串口。在使用串口之前應通過設置該屬性打開串口,而當退出串口通信時,應該關閉串口,以釋放程序占用的串口資源。Input屬性通過操作該屬性值,可以從串口通信輸入緩沖區(qū)獲取數(shù)據(jù)。VARIANT GetInput();Output屬性通過該屬性,向串口通信輸出緩沖區(qū)寫入數(shù)據(jù),然后通過串口將數(shù)據(jù)發(fā)送出去。Void SetOutput(c0nst VARAINTamp。 newValue)。InputLen屬性當使用GetInput()函數(shù)從輸入緩沖區(qū)讀取數(shù)據(jù)時,該屬性決定了一次讀取的字節(jié)數(shù)。void SetInputLen(short nNewValue)。//設置輸入緩沖區(qū)中一次讀出的字節(jié)數(shù)short GetInputLen()。//獲取當前從輸入緩沖區(qū)中一次讀取的字節(jié)數(shù)InputMode屬性該屬性用于設置或讀出GetInput()函數(shù)從輸入緩沖區(qū)中讀取數(shù)據(jù)時的讀取方式。void SetInputMode(long nNewValue)。//設置從輸入緩沖區(qū)中讀取數(shù)據(jù)的方式long GetInputMode()。//獲取從輸入緩沖區(qū)中讀取數(shù)據(jù)的方式InBufferSize屬性使用該屬性來設置或讀出串行通信輸入緩沖區(qū)的大小。void SetInBufferSize(short nNewValue)。//設置輸入緩沖區(qū)的大小short GetInBufferSize()。//獲取當前輸入緩沖區(qū)的大小InBufferCount屬性使用GetInBufferCount()函數(shù)可以返回當前輸入緩沖區(qū)中可以讀取的有效數(shù)據(jù)個數(shù),以字節(jié)為單位。short GetInBufferCount()。//獲取當前輸入緩沖區(qū)中待讀數(shù)據(jù)的個數(shù)void SetInBufferCount(short nNewValue)。//設置當前輸入緩沖區(qū)中待讀數(shù)據(jù)的個數(shù)RThreshold屬性該屬性代表一個閾值。當接收緩沖區(qū)中的字符數(shù)達到該閾值時,MSComm控件就會產生OnComm事件。void SetRThreshold(short nNewValue)。//設置接收緩沖區(qū)產生OnComm事件的閾值short GetRThreshold()。//獲取接收緩沖區(qū)產生OnComm事件的閾值 OutBufferSize屬性使用該屬性來設置或讀出串行通信輸出緩沖區(qū)的大小。void SetOutBufferSize(short nNewValue)。//設置輸出緩沖區(qū)的大小short GetOutBufferSize()。//獲取當前輸出緩沖區(qū)的大小OutBufferCount屬性使用GetOutBufferCount()函數(shù)可以返回當前輸出緩沖區(qū)中可以讀取的有效數(shù)據(jù)個數(shù),以字節(jié)為單位。short GetOutBufferCount()。//獲取當前輸出緩沖區(qū)中待讀數(shù)據(jù)的個數(shù)void SetOutBufferCount(short nNewValue)。//設置當前輸出緩沖區(qū)中待讀數(shù)據(jù)的個數(shù)SThreshold屬性該屬性是一個閾值。當發(fā)送緩沖區(qū)中的字符數(shù)達到該閾值時,MSComm控件將產生OnComm事件。void SetSThreshold(short nNewValue)。//設置發(fā)送緩沖區(qū)產生OnComm事件的閾值short GetSThreshold()。//獲取發(fā)送緩沖區(qū)產生OnComm事件的閾值 使用MSComm控件進行串口程序設計,主要需要處理一下幾個方面的內容:。Visual C++集成開發(fā)環(huán)境在默認情況下,不會包含MSComm控件,所以使用控件編程必須將MSComm控件加載到Visual C++集成開發(fā)環(huán)境中,然后根據(jù)程序是基于對話框還是單文檔形式,采用不同的編寫方法。初始化主要完成設置程序使用的串口編號、設置串口的通信參數(shù),然后打開串口。詳細說明怎么使用控件的事件驅動機制,發(fā)送代碼與接收代碼應該在哪個位置書寫。當使用玩控件后,應該及時關閉串口,以釋放串口資源??丶荒芴峁?shù)據(jù)流的發(fā)送與接收處理,它不對數(shù)據(jù)流進行分析其含義的操作,故通信雙方在通信之前,必須約定好使用的通信協(xié)議。加載及使用控件。在Visual C++主界面中,單擊“工程”|“添加工程”|“Components and Controls”命令。 and Controls Gallery對話框,打開Registered ActiveX Controls文件夾。 Communication Controls,Version ,然后單擊Insert按鈕。“創(chuàng)天中文VC++”對話框,單擊“確定”按鈕,然后彈出Confirm Classes對話框,不需要修改該對話框中的任何參數(shù),單擊OK按鈕最后單擊彈出對話框中的“結束”按鈕即完成MSComm控件的加載操作。,創(chuàng)建控件ID。將控件圖標拖動到窗口上后,Visual C++會在對話框成員函數(shù)OnInitDialog()中自動生成創(chuàng)建控件實例的代碼。初始化及打開串口的操作可放在該創(chuàng)建代碼之后。(1)。 //選擇COM1(1)。 //輸入方式為二進制方式(1024)。 //設置輸入緩沖區(qū)大小(512)。 //設置輸出緩沖區(qū)大小,波特率9600無校驗,8個數(shù)據(jù)位,1個停止位 (9600,n,8,1)。 if(!())(TRUE)。//打開串口(1)。 //參數(shù)1表示每當串口接收緩沖區(qū)中有多于或等于1個字符時將引發(fā)一個接收數(shù)據(jù)的OnComm事件(0)。 //設置當前接收區(qū)數(shù)據(jù)長度為0()。 //先預讀緩沖區(qū)以清除殘留數(shù)據(jù)第三章 串口通信的編程 第一,我們要安裝vc++,在此我
點擊復制文檔內容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1