




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)踐3藍(lán)牙技術(shù)實(shí)踐3.G.1實(shí)踐3.G.2
實(shí)踐3.G.1
兩個(gè)藍(lán)牙模塊之間的透?jìng)鳒y(cè)試。
【分析】藍(lán)牙模塊能與內(nèi)含藍(lán)牙模塊的手機(jī)進(jìn)行配對(duì)連接,也能彼此之間進(jìn)行配對(duì)連接。藍(lán)牙模塊一旦完成配對(duì)連接,彼此之間即為透明數(shù)據(jù)傳輸狀態(tài)。本實(shí)踐實(shí)現(xiàn)兩個(gè)藍(lán)牙模塊的配對(duì)連接和數(shù)據(jù)通信,首先通過(guò)跳線開(kāi)關(guān)分別設(shè)置為主模塊和從模塊;然后分別進(jìn)行初始化,在初始化中設(shè)置的配對(duì)碼必須保持一致。
解決問(wèn)題的步驟如下:
(1)硬件準(zhǔn)備。
(2)兩個(gè)藍(lán)牙模塊分別初始化。
(3)配對(duì)成功后,通過(guò)超級(jí)串口進(jìn)行透?jìng)鳒y(cè)試。
【參考解決方案】
1.硬件準(zhǔn)備
將兩個(gè)實(shí)驗(yàn)開(kāi)發(fā)板上的JP12通過(guò)跳線選通COM端,藍(lán)牙串口通過(guò)串口線分別連至兩臺(tái)PC機(jī);同時(shí),JP13通過(guò)跳線選通HW端,即硬件選擇主、從模式。將一個(gè)實(shí)驗(yàn)開(kāi)發(fā)板的JP14通過(guò)跳線選通MA端,即硬件設(shè)置為主模塊;將另一個(gè)實(shí)驗(yàn)開(kāi)發(fā)板的JP14通過(guò)跳線選通SL端,即硬件設(shè)置為從模塊。
設(shè)置完成之后,分別開(kāi)啟電源開(kāi)關(guān)。
2.兩個(gè)模塊初始化
先后開(kāi)啟兩個(gè)實(shí)驗(yàn)開(kāi)發(fā)板上的電源開(kāi)關(guān),在兩臺(tái)PC機(jī)上分別開(kāi)啟超級(jí)串口程序,正確設(shè)置端口號(hào)和波特率后,輸入相關(guān)AT指令完成主模塊和從模塊的初始化。
1)主模塊初始化
首先開(kāi)啟主模塊所在的實(shí)驗(yàn)開(kāi)發(fā)板上的電源開(kāi)關(guān),再開(kāi)啟與之相連的PC機(jī)上的超級(jí)串口程序,波特率選擇藍(lán)牙模塊的默認(rèn)值“9600”,選擇正確的串口號(hào),此例中的設(shè)置如圖S3-1所示。圖S3-1主模塊超級(jí)串口參數(shù)設(shè)置然后,在“超級(jí)串口”界面輸入初始化的AT指令,將主模塊命名為BOLUTEK1,開(kāi)啟上報(bào)指令,主動(dòng)搜索遠(yuǎn)端藍(lán)牙設(shè)備,配對(duì)碼設(shè)置為1234560。每一條指令必須以回車結(jié)尾,在全部輸入完之后,點(diǎn)擊“發(fā)送”,相應(yīng)的指令回復(fù)如圖S3-2所示。圖中的最后兩條指令是主模塊搜索遠(yuǎn)端藍(lán)牙設(shè)備的上報(bào)結(jié)果,每隔一段時(shí)間主動(dòng)上報(bào)一次。圖S3-2主模塊初始化完成主模塊初始化后,關(guān)閉實(shí)驗(yàn)板上的電源開(kāi)關(guān)。
2)從模塊初始化
首先開(kāi)啟從模塊所在的實(shí)驗(yàn)開(kāi)發(fā)板上的電源開(kāi)關(guān),再開(kāi)啟對(duì)應(yīng)的超級(jí)串口程序,波特率選擇默認(rèn)值“9600”,選擇正確的串口號(hào),此例中的設(shè)置如圖S3-3所示。圖S3-3從模塊的超級(jí)串口參數(shù)設(shè)置然后,在超級(jí)串口界面輸入初始化的AT指令,將從
模塊命名為BOLUTEK2,開(kāi)啟上報(bào)指令,配對(duì)碼設(shè)置為1234560,與主模塊保持一致。相應(yīng)的指令回復(fù)如圖S3-4
所示。圖S3-4從模塊初始化
3.配對(duì)連接
初始化正確后,配對(duì)連接過(guò)程是由模塊自主完成的。開(kāi)啟主模塊的電源開(kāi)關(guān),主模塊所在的實(shí)驗(yàn)板上LED4燈快閃,片刻之后LED4長(zhǎng)亮。觀察從模塊所在的實(shí)驗(yàn)板,亦可看到LED4燈長(zhǎng)亮。此現(xiàn)象代表兩個(gè)模塊已成功配對(duì)連接。
查看與主模塊相連的PC機(jī)上的超級(jí)串口,可看到如圖S3-5所示的界面。圖S3-5主模塊端的提示查看與從模塊相連的PC機(jī)上的超級(jí)串口,可看到如圖S3-6所示的界面。圖S3-6從模塊端的提示
4.透?jìng)鳒y(cè)試
點(diǎn)擊“清空顯示”按鈕,將兩個(gè)超級(jí)串口的接收區(qū)清空。
在主模塊端再次發(fā)送之前的初始化AT指令如圖S3-7
所示。圖S3-7主模塊端發(fā)送稍后,在從模塊端超級(jí)串口的接收區(qū)可看到如圖S3-8所示的界面。圖S3-8從模塊端接收在發(fā)送區(qū)再次輸入之前的從模塊初始化指令,點(diǎn)擊“發(fā)送”按鈕,如圖S3-9所示。圖S3-9從模塊端發(fā)送稍后,在主模塊對(duì)應(yīng)的超級(jí)串口可看到如圖S3-10所示的界面。圖S3-10主模塊端接收
實(shí)踐3.G.2
單片機(jī)通過(guò)兩個(gè)藍(lán)牙模塊進(jìn)行串口通信
【分析】本實(shí)踐在實(shí)踐3.G.1的基礎(chǔ)上,將兩個(gè)藍(lán)牙模塊分別連至單片機(jī)。單片機(jī)檢測(cè)4個(gè)按鍵,當(dāng)按鍵按下時(shí),單片機(jī)向?qū)嶒?yàn)板上的藍(lán)牙模塊發(fā)送特定的內(nèi)容。由于藍(lán)牙模塊處于透?jìng)鳡顟B(tài),兩個(gè)藍(lán)牙模塊之間可看做一條透明傳輸線,該內(nèi)容將直接傳至對(duì)端藍(lán)牙模塊的單片機(jī)。對(duì)端單片機(jī)在接收到特定內(nèi)容后,控制LCD12864、LED、蜂鳴器等外設(shè)做出響應(yīng)。
本實(shí)踐的硬件電路包含兩部分:藍(lán)牙模塊外圍電路和單片機(jī)及其外設(shè)電路。藍(lán)牙模塊外圍電路請(qǐng)參見(jiàn)理論篇的相關(guān)介紹,此處不再給出。單片機(jī)及其相關(guān)外設(shè)的電路圖如圖S3-11所示,其中外設(shè)包含四個(gè)按鍵、兩個(gè)LED燈、1個(gè)蜂鳴器、1個(gè)LCD12864。圖S3-11單片機(jī)及相關(guān)外設(shè)解決問(wèn)題的步驟如下:
(1)兩個(gè)藍(lán)牙模塊初始化和配對(duì)連接。
(2)將兩個(gè)藍(lán)牙模塊分別連至單片機(jī),編寫(xiě)單片機(jī)控制程序。
(3)仿真調(diào)試與下載驗(yàn)證。
【參考解決方案】
1.兩個(gè)藍(lán)牙模塊初始化和配對(duì)連接
按照3.G.1的實(shí)踐步驟,使兩個(gè)藍(lán)牙模塊進(jìn)入透?jìng)鳡顟B(tài)。
2.將藍(lán)牙模塊連至單片機(jī)
將兩個(gè)實(shí)驗(yàn)開(kāi)發(fā)板上的JP12均通過(guò)跳線選至MCU端,串口線拔出。
3.編寫(xiě)控制程序
將其中一個(gè)實(shí)驗(yàn)開(kāi)發(fā)板(實(shí)驗(yàn)板1)通過(guò)JTAG仿真器連接至PC機(jī),查看其端口號(hào)(方法同實(shí)踐2,此例中為COM12)。新建一個(gè)工程,按照實(shí)踐2做好相關(guān)的IAR設(shè)置;然后編寫(xiě)相關(guān)程序。該工程采用模塊化的編碼風(fēng)格,分別編寫(xiě)主函
數(shù)mian.c、按鍵掃描keyscan.h和keyscan.c、液晶顯示LCD12864SPI.h和LCD12864.c。
1)?main.c
藍(lán)牙模塊通過(guò)USART串口與單片機(jī)相連,因此主函數(shù)采用了任務(wù)函數(shù)結(jié)合定時(shí)器中斷的方法控制蜂鳴器響、清屏、LED2亮和按鍵掃描及特定內(nèi)容的串口發(fā)送,是實(shí)際的工程應(yīng)用中比較常用的編程方法。主程序的源程序代碼如下:
#include<iom16.h>
#include<intrinsics.h>
#include<string.h>
#include“12864SPI.h”
#include“keyscan.h”
#defineucharunsignedchar
#defineuintunsignedint
#defineBIT(x)(1<<(x))
ucharbeep=0;
ucharled=0;
ucharstatus=0;
ucharkey=0;
ucharRX_flag=0;
ucharRX_temp=0;
ucharRX_buffer[UART_BUFLEN];
ucharRX_counter=0;
ucharTX_buffer[UART_BUFLEN]=“HELLO-”;
ucharTX_counter=0;
ucharTX_len=0;
uchar__flashASCII[]=“0123456789ABCDEF”;
#defineTASK_NUM10 //任務(wù)數(shù)量
#defineTaskTypt_tunsignedchar
voidtask0(void);
voidtask1(void);
voidtask2(void);
voidtask3(void);
voidTIMER2_init();
voidUART_init();
voidIO_init();
voiddelayms(uintt);
voidwr_harf_LCD(uchar*ptr,ucharupdown);
/********************主函數(shù)******************/
voidmain(void)
{
IO_init();
LCD_init();
UART_init();
TIMER2_init();
KEY_init();
memset(RX_buffer,32,'');
delayms(50);
while(1)在上述源程序代碼中,串口的發(fā)送與接收通過(guò)相應(yīng)的中斷函數(shù)實(shí)現(xiàn),當(dāng)操作按鍵時(shí),單片機(jī)通過(guò)串口向藍(lán)牙模塊發(fā)送數(shù)據(jù),發(fā)送內(nèi)容為指定的“HELLO+按鍵值”的形式。當(dāng)單片機(jī)接收到相關(guān)數(shù)據(jù)時(shí),將控制LCD12864顯示接收到的內(nèi)容,如果收到的是“HELLO1”,則蜂鳴器響;如果收到的是“HELLO2”,則LED2亮。
2)按鍵掃描
通過(guò)查詢方式檢測(cè)4個(gè)按鍵中是否有按鍵操作,實(shí)驗(yàn)板上的SW2按下并彈起,返回按鍵值1;SW3按下并彈起,返回按鍵值2;SW4按下并彈起,返回按鍵值3;SW5按下并彈起,返回按鍵值4。
頭文件keyscan.h的源程序代碼如下:#ifndef_KEYSCAN_H_
#define_KEYSCAN_H_
#include<ioavr.h>
#defineucharunsignedchar
#defineuintunsignedint
#defineBIT(x)(1<<(x))
#definenops()asm("nop");asm("nop")#defineKEY1PIND_Bit2
#defineKEY2PINA_Bit0
#defineKEY3PIND_Bit4
#defineKEY4PIND_Bit5
voidKEY_init();
ucharkeyscan(void);
#endif實(shí)現(xiàn)具體函數(shù)的keyscan.c文件的源程序代碼如下:
3)液晶顯示驅(qū)動(dòng)
關(guān)于LCD12864顯示驅(qū)動(dòng)程序,在實(shí)踐2中已有講解,此處僅僅省去了測(cè)試函數(shù)Test()。
頭文件LCD12864SPI.h的源程序代碼如下:
#ifndef_12864SPI_H_
#define_12864SPI_H_
#defineucharunsignedchar
#defineuintunsignedint
#defineBIT(x)(1<<(x))實(shí)現(xiàn)驅(qū)動(dòng)函數(shù)的LCD12864.c函數(shù)的源程序代碼如下:
4.下載驗(yàn)證
將LCD12864插入插槽,點(diǎn)擊“Make”按鈕,出現(xiàn)如圖S3-12所示的提示后,點(diǎn)擊“Debug”按鈕,將程序下載至實(shí)
驗(yàn)板,點(diǎn)擊“全速執(zhí)行”按鈕。圖S3-12無(wú)錯(cuò)誤信息提示將JTAG仿真器連接至另一實(shí)驗(yàn)板(實(shí)驗(yàn)板2),采取同樣的操作將程序代碼下載至實(shí)驗(yàn)板2,全速執(zhí)行后,可觀察到下述現(xiàn)象:
在實(shí)驗(yàn)板1上按下并彈起4個(gè)按鍵中的任何一個(gè),LED2燈閃亮一次。當(dāng)按下
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度教育培訓(xùn)機(jī)構(gòu)教育行業(yè)數(shù)據(jù)服務(wù)協(xié)議
- 二零二五年度農(nóng)業(yè)科技文職人員聘用協(xié)議
- 2025年度茶樓合作經(jīng)營(yíng)協(xié)議書(shū):茶樓與茶藝茶具研發(fā)中心的合作合同
- 二零二五年度知識(shí)產(chǎn)權(quán)質(zhì)押合同解除與資金返還協(xié)議
- 2025年度船舶租賃與船舶技術(shù)咨詢服務(wù)協(xié)議
- 2025年度超市轉(zhuǎn)讓與智能化升級(jí)改造合作協(xié)議
- 2025年度智能化社區(qū)物業(yè)委托經(jīng)營(yíng)管理合同
- 專業(yè)資格教育培訓(xùn)合作協(xié)議
- 新型儲(chǔ)能技術(shù)應(yīng)用開(kāi)發(fā)合作協(xié)議
- 行路難:古典詩(shī)詞中的壯志情懷教案
- 中建住宅樓懸挑卸料平臺(tái)專項(xiàng)施工方案
- 【MOOC】數(shù)據(jù)庫(kù)系統(tǒng)(下):管理與技術(shù)-哈爾濱工業(yè)大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 日本留學(xué)中介簽約合同
- 鐵路安全應(yīng)急預(yù)案
- 《城市軌道交通車輛構(gòu)造》 課件 2.2 不銹鋼車體結(jié)構(gòu)認(rèn)知
- 古詩(shī)詞誦讀《李憑箜篌引》 公開(kāi)課一等獎(jiǎng)創(chuàng)新教案統(tǒng)編版高中語(yǔ)文選擇性必修中冊(cè)
- 小學(xué)生日常行為規(guī)范實(shí)施方案
- 2024-2025學(xué)年九年級(jí)化學(xué)人教版上冊(cè)檢測(cè)試卷(1-4單元)
- 2024年遼寧省鞍山岫巖滿族自治縣事業(yè)單位招聘(150人)歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- DBJ46-070-2024 海南省民用建筑外門(mén)窗工程技術(shù)標(biāo)準(zhǔn)
- 金屬冶煉安全生產(chǎn)實(shí)務(wù)注冊(cè)安全工程師考試(初級(jí))試題與參考答案
評(píng)論
0/150
提交評(píng)論