從零開(kāi)始學(xué)vc之串口通信與自定義消息

ID:17934695

大?。?.65 MB

頁(yè)數(shù):15頁(yè)

時(shí)間:2018-09-11

從零開(kāi)始學(xué)vc之串口通信與自定義消息_第1頁(yè)
從零開(kāi)始學(xué)vc之串口通信與自定義消息_第2頁(yè)
從零開(kāi)始學(xué)vc之串口通信與自定義消息_第3頁(yè)
從零開(kāi)始學(xué)vc之串口通信與自定義消息_第4頁(yè)
從零開(kāi)始學(xué)vc之串口通信與自定義消息_第5頁(yè)
資源描述:

《從零開(kāi)始學(xué)vc之串口通信與自定義消息》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)

1、從零開(kāi)始學(xué)VC系列教程之三.串口通信與自定義消息課程之前:首先請(qǐng)大家確認(rèn)一下前面兩章都已經(jīng)熟悉,因?yàn)橐恍┣懊嬉呀?jīng)介紹過(guò)的基礎(chǔ)操作在這里將不再詳細(xì)說(shuō)明,如果有什么問(wèn)題,可以翻看一下前面的兩章或者留言提問(wèn).本章是基于PC機(jī)與單片機(jī)的串口通信,用到了一個(gè)動(dòng)態(tài)鏈接庫(kù)和一個(gè)自定義消息.學(xué)習(xí)目標(biāo):掌握VC下串口編程式的方法,掌握動(dòng)態(tài)庫(kù)的靜態(tài)調(diào)用及自定義消息.課程詳解:1.參照第一章新建一個(gè)基于對(duì)話(huà)框的Vc工程,名稱(chēng)定義為Eg03.2.工程建立后,在對(duì)話(huà)框上加入一個(gè)組合框(ComboBox),ID號(hào)改為IDC_COMPORT用于選擇使用PC機(jī)上的哪一個(gè)串口

2、.在組合框后加入一個(gè)按鈕,標(biāo)題(Caption)改為”打開(kāi)”,ID號(hào)改為IDC_BTN_PORTOPEN用于打開(kāi)串口,開(kāi)始通信.下面加入一個(gè)編程框(EDIT),ID號(hào)改為IDC_EDIT_RECMSG用于顯示接收到的數(shù)據(jù).在編程框下面再添加一個(gè)編程框(EDIT),.ID號(hào)改為IDC_EDIT_SEDMSG用于添加要發(fā)送的數(shù)據(jù).然后在這個(gè)編程框后加入一個(gè)按鈕.標(biāo)題(Caption)為”發(fā)送”,ID號(hào)為IDC_BTN_SEND最后調(diào)整位置及大小如下151.添加Lib文件.這里介紹的串口通信用的不是VC自帶的MSCOMM控件.原因有兩個(gè),一是順便介

3、紹一下動(dòng)態(tài)庫(kù)和自定義消息的用法.二是MSCOMM控件使用時(shí)數(shù)據(jù)類(lèi)型轉(zhuǎn)換比較復(fù)雜,并且使用也不是很方便.當(dāng)然,以后也會(huì)介紹多線(xiàn)程串口通信給大家,我們會(huì)在后面開(kāi)設(shè)一章多線(xiàn)程編程方法,并在那里詳細(xì)介紹基于多線(xiàn)程的串口通信.這里使用一個(gè)動(dòng)態(tài)庫(kù),其實(shí)也是別人封裝好了的多線(xiàn)程通信,名字是Pcomm.在工程下載中,給出了三個(gè)文件,分別是Pcomm.h,Pcomm.lib,Pcomm.dll,現(xiàn)在請(qǐng)大家把這三個(gè)文件拷到工程目錄,也就是Eg03這個(gè)文件夾中.至于什么是動(dòng)態(tài)庫(kù),這三個(gè)文件倒底是什么作用,我們做完這個(gè)例程后再解釋,現(xiàn)在還是先按步就搬,營(yíng)造一個(gè)感性認(rèn)

4、識(shí).下面添加Lib文件到工程.首先點(diǎn)擊[工程](Project),選擇下拉式菜單中的[設(shè)置](ProjectSettings)15然后會(huì)彈出一個(gè)對(duì)話(huà)框,在標(biāo)簽卡中選擇[連接]然后在[對(duì)象/模塊]中添加Pcomm.lib15,完成后如上面所示,單擊[確定]退出.這樣,我們就為Pcomm.dll這個(gè)動(dòng)態(tài)庫(kù)添加了靜態(tài)鏈接,同時(shí),這也就是動(dòng)態(tài)庫(kù)的靜態(tài)鏈接方法,當(dāng)然,還有一步就是包含Pcomm.h這個(gè)頭文件.在剛才的步驟中,我們將Pcomm.Lib添加到工程,這個(gè)文件主要用于指定Pcomm.dll中各個(gè)功能函數(shù)的入口及地址,Pcomm.Lib就像一個(gè)地

5、圖指出目的地的路標(biāo),而真正的函數(shù)是在Pcomm.Dll中的.當(dāng)然,為了方便調(diào)用,我們還要得到Pcomm.Dll中的函數(shù)聲明,這些函數(shù)聲明就在Pcomm.h這個(gè)頭文件中,所以,大家打開(kāi)Pcomm.h這個(gè)文件,只有函數(shù)及變量定義,并沒(méi)有函數(shù)過(guò)程.下面我們來(lái)添加這個(gè)文件.1.打開(kāi)左邊的[工作空間](WorkSpace)中選擇標(biāo)簽[ClassView](這里大家只能看到[Class…]這一步前兩章已經(jīng)詳細(xì)介紹過(guò)了,大家可以參考.),然后雙擊[OnInitDialog]就可以打開(kāi)代碼窗口了,在原有頭文件包含后面加入串口頭文件引用.輸入#include”

6、Pcomm.h”就可以了,完成后如下圖15這一步我們加入了動(dòng)態(tài)庫(kù)的函數(shù)聲明,后面就可以直接使用Pcomm.Dll中的函數(shù)了.下面我們來(lái)添加事件響應(yīng).單擊工作空間中間的標(biāo)簽[ResourceView](大家看到的是[Reso…]),再雙擊[IDD_EG03_DIALOG]就可以回到控件編輯狀態(tài).15首先為[打開(kāi)]按鈕添加代碼.雙擊[打開(kāi)]按鈕,然后在按鈕事件中添加.完成后如下voidCEg03Dlg::OnBtnPortopen(){//TODO:AddyourcontrolnotificationhandlercodeherePort=Get

7、DlgItemInt(IDC_COMPORT);15if(SIO_OK!=sio_open(Port)){MessageBox("串口打開(kāi)錯(cuò)誤");}else{sio_ioctl(Port,BaudRate,DataBits

8、StopBits

9、Parity);sio_cnt_irq(Port,CntIrq,1);}}其中,sio開(kāi)頭的變量及函數(shù)都是Pcomm中的,我們來(lái)解釋一下.sio_open是打開(kāi)某個(gè)串口,傳入的參數(shù)是串口號(hào),如果我們要打開(kāi)COM1,可以用sio_open(1),返回的參數(shù)在Pcomm里面定義了,如果返回SIO_OK就表示

10、串口打開(kāi)沒(méi)有問(wèn)題,否則,就是打開(kāi)串口失敗.sio_ioctl用于設(shè)置通信的相關(guān)信息,Port中串口號(hào),BaudRate是波特率,DataBits是數(shù)據(jù)位數(shù),Stop

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。
关闭