標(biāo)題: STM32 模塊篇-藍(lán)牙串口模塊(HC-05)實(shí)驗(yàn) [打印本頁(yè)]

作者: 51黑黑黑    時(shí)間: 2016-3-4 13:29
標(biāo)題: STM32 模塊篇-藍(lán)牙串口模塊(HC-05)實(shí)驗(yàn)
目     錄
5.10.1概述3
5.10.1.1產(chǎn)品特點(diǎn):4
5.10.1.3應(yīng)用領(lǐng)域:7
5.10.2 實(shí)驗(yàn)?zāi)康?
5.10.3 硬件設(shè)計(jì)8
5.10.4 軟件設(shè)計(jì)9
5.10.4.1 軟件設(shè)計(jì)說(shuō)明9
5.10.4.2 STM32庫(kù)函數(shù)文件9
5.10.4.3 自定義頭文件10
5.10.4.4 pbdata.h文件內(nèi)容10
5.10.4.5 pbdata.c文件內(nèi)容11
5.10.5  GPIO引腳時(shí)鐘使能13
5.10.6  stm32f10x_it.c文件內(nèi)容13
5.10.7  main.c文件里內(nèi)容14
5.10.8 程序下載16
5.10.9 實(shí)驗(yàn)效果圖17
5.10.10小常識(shí)(非常重要)17
5.10  HC-05藍(lán)牙串口模塊
實(shí)驗(yàn)及程序設(shè)計(jì)
5.10.1概述嵌入式藍(lán)牙串口模塊具備兩種工作模式:命令響應(yīng)工作模式和自動(dòng)連接工作模式,在自動(dòng)連接工作模式下模塊又可分為主(Master)、從(Slave)、和回環(huán)(Loopback)三種工作角色。當(dāng)模式處于自動(dòng)連接工作模式時(shí),將自動(dòng)根據(jù)事先設(shè)定的方式連接的數(shù)據(jù)傳輸;當(dāng)模塊處于命令響應(yīng)工作模式時(shí)能執(zhí)行所有的AT命令。上電之前按住模塊的微動(dòng)開(kāi)關(guān)后再送電,這是模塊回進(jìn)入命令響應(yīng)工作模式,LED燈是慢速閃動(dòng)狀態(tài),亮滅的時(shí)間間隔約2秒。
我們銷(xiāo)售的模塊都是從機(jī),出廠默認(rèn)值是:波特率:9600,N,8,1。配對(duì)密碼:1234。
我們不建議用在超過(guò)115200的波特率,信號(hào)的干擾會(huì)使系統(tǒng)工作不穩(wěn)定。設(shè)置超過(guò)115200后用電腦無(wú)法正常訪問(wèn)藍(lán)牙模塊,要用單片機(jī)編程于高于115200才能使用此波特率和重新發(fā)AT命令設(shè)低波特率,因此要謹(jǐn)慎設(shè)置過(guò)高的頻率。用AT命令設(shè)好波特率后,下次上電使用不需重新設(shè)置,HC-06-D藍(lán)牙串口模塊可以掉電保存波特率。

5.10.1.1產(chǎn)品特點(diǎn):
l 采用CSR主流藍(lán)牙芯片,藍(lán)牙V2.0協(xié)議標(biāo)準(zhǔn)
;
l 核心串口模塊工作電壓3.3V。帶底板的可以為3.1-6.5V之間

l 波特率為1200,2400,4800,9600,19200,38400,57600,11520
0用戶可設(shè)置;
l 核心模塊尺寸大小為:28mm x 15 mm x 2.35mm。底板尺寸27mm*47mm
;
l 工作電流:配對(duì)中為50MA,配對(duì)完畢通信中為28MA
;
l 空曠地帶有效傳輸距離10米,超過(guò)10米也是可能的,但是不對(duì)連接質(zhì)量做保證;
l 配對(duì)成功以后,可以作為全雙工串口使用。無(wú)需了解任何藍(lán)牙協(xié)議,但只支持8位數(shù)據(jù)位、1位停止位、無(wú)奇偶校驗(yàn)的通信格式。這也是最常用的通信格式,不支持其它格式!
5.10.1.2 AT命令集如下:


舉例說(shuō)明:
At+version?\r\n
+VERSION:2.0-20100601
OK



出廠默認(rèn)值:
a) 設(shè)備類:0
b) 查詢碼:0x009e8b33
c) 模塊工作角色:Slave Mode
d) 連續(xù)模式:指定專用藍(lán)牙連接模式
e) 串口參數(shù):波特率:38400bits/s;停止位:1位;校驗(yàn)位:無(wú)
f) 配對(duì)碼:“1234”
g) 設(shè)備名稱:“H-C-2010-06-01”


藍(lán)牙地址的表示方法:NAP:UAP:LAP(十六進(jìn)制)舉例說(shuō)明:
模塊藍(lán)牙設(shè)備地址為:12:34:56:ab:cd:ef
At+addr?\r\n
+ADDR:1234,56,ABCDEF
OK


舉例:
AT+IAC=9e8b3f\r\n  OK
AT+IAC=?\r\n
+IAC: 9e8b3fOK


舉例:
AT+IAQM=1,9,48\r\n  --查詢模式設(shè)置:帶RSSI信號(hào)強(qiáng)度指示,超過(guò)9個(gè)藍(lán)牙設(shè)備響應(yīng)則終止查詢,設(shè)定超時(shí)為48x1.28=61.44秒。
OK
AT+INQM\r\n
+INQM:1,9,48
OK


舉例:
AT+IAQM=1,9,48\r\n  --查詢模式設(shè)置:帶RSSI信號(hào)強(qiáng)度指示,超過(guò)9個(gè)藍(lán)牙設(shè)備響應(yīng)則終止查詢,設(shè)定超時(shí)為48x1.28=61.44秒。
OK
AT+INQM\r\n
+INQM:1,9,48





舉例:設(shè)置串口波特率:115200,2位停止位,Even校驗(yàn)
AT+UART=115200,1,2\r\n
OK
AT+UART ?\r\n
++UART:115200,1,2
OK


舉例:
AT+NAME=HC-05\r\n  —設(shè)置模塊設(shè)備名稱為“HC-05”
OK
at+name=Beijing\r\n  —設(shè)置模塊設(shè)備名稱為“Beijing”
OK
at+name=“Beijing”\r\n  —設(shè)置模塊設(shè)備名稱為“Beijing”
OK
at+name?\r\n  
+NAME=Beijing
OK
以上參數(shù)設(shè)置可以掉電保存,只需修改一次。詳細(xì)參考《藍(lán)牙串口模塊使用說(shuō)明》。
5.10.1.3應(yīng)用領(lǐng)域: l 用于GPS導(dǎo)航系統(tǒng),水電煤氣抄表系統(tǒng),工業(yè)現(xiàn)場(chǎng)采控系統(tǒng)
;
l 可以與藍(lán)牙筆記本電腦、電腦加藍(lán)牙適配器、PDA等設(shè)備進(jìn)行無(wú)縫連接

5.10.2 實(shí)驗(yàn)?zāi)康?/strong>1. 掌握HC-05藍(lán)牙串口模塊的工作原理;
2. 掌握單片機(jī)實(shí)現(xiàn)HC-05藍(lán)牙串口模塊通訊的基本方法;
3. 熟悉單片機(jī)數(shù)據(jù)采集系統(tǒng)中,HC-05藍(lán)牙串口模塊作為傳感器對(duì)象的系統(tǒng)設(shè)計(jì)方法,更多的了解電子傳感器及控制器的飛速發(fā)展。
5.10.3 硬件設(shè)計(jì)    把HC-05藍(lán)牙串口模塊通過(guò)杜邦線與大黃蜂開(kāi)發(fā)板連接。接線方法簡(jiǎn)單,采用4根杜邦線,按照“附表1接線方法”連接好即可。
實(shí)驗(yàn)器材:
一塊大黃蜂開(kāi)發(fā)板;一個(gè)HC-05藍(lán)牙串口模塊;四根杜邦線;一條USB下載線等。





5.10.4 軟件設(shè)計(jì)
5.10.4.1 軟件設(shè)計(jì)說(shuō)明打開(kāi)手機(jī)藍(lán)牙功能搜索藍(lán)牙設(shè)備HC-05,輸入密碼(1234)。安裝Android 版串口調(diào)試軟件(HC-PDA-ANDROID)。安裝完成后打開(kāi)軟件(BTClient)選擇連接并在查找設(shè)備中選擇HC-05,等待幾秒鐘與藍(lán)牙模塊連接,當(dāng)連接成功后手機(jī)下方會(huì)有提示連接成功。然后發(fā)送數(shù)據(jù)(1234),這時(shí)屏幕上會(huì)返回(2345)說(shuō)明藍(lán)牙模塊連接成功。



5.10.4.2 STM32庫(kù)函數(shù)文件



本節(jié)實(shí)驗(yàn)及以后的實(shí)驗(yàn)我們都是用到庫(kù)文件,其中 stm32f10x_gpio.h頭文件包含了GPIO端口的定義。stm32f10x_rcc.h 頭文件包含了系統(tǒng)時(shí)鐘配置函數(shù)以及相關(guān)的外設(shè)時(shí)鐘使能函數(shù),所以我們要把這兩個(gè)頭文件對(duì)應(yīng)的stm32f10x_gpio.c和stm32f10x_rcc.c加到工程中;Misc.c庫(kù)函數(shù)主要包含了中斷優(yōu)先級(jí)的設(shè)置,stm32f10x_exti.c 庫(kù)函數(shù)主要包含了外部中斷設(shè)置參數(shù),tm32f10x_tim.c庫(kù)函數(shù)主要包含定時(shí)器設(shè)置,tm32f10x_usart.c庫(kù)函數(shù)主要包含串行通訊設(shè)置;以上庫(kù)文件包含了本次實(shí)驗(yàn)所有要用到的函數(shù)使用功能。

5.10.4.3 自定義頭文件



我們已經(jīng)創(chuàng)建了兩個(gè)公共的文件,這兩個(gè)文件主要存放我們自定義的公共函數(shù)和全局變量,以方便以后每個(gè)功能模塊之間傳遞參數(shù)。
5.10.4.4 pbdata.h文件內(nèi)容


5.10.4.5 pbdata.c文件內(nèi)容
下面是pbdata.c文件詳細(xì)內(nèi)容,在文件開(kāi)始還是引用“pbdata.h”文件。


5.10.5  GPIO引腳時(shí)鐘使能
我們總在強(qiáng)調(diào),每個(gè)工程都必須在開(kāi)始時(shí)配置并啟動(dòng)STM32系統(tǒng)時(shí)鐘,這次也不例外。



本節(jié)實(shí)驗(yàn)用到了PA\PE端口,所以要把PA\PE端口的時(shí)鐘打開(kāi);串口1時(shí)鐘源是通過(guò)APB2預(yù)分頻器得到的,串口1時(shí)鐘初始化;因?yàn)橐c外部芯片通訊,所以要打開(kāi)功能復(fù)用時(shí)鐘。
5.10.6  stm32f10x_it.c文件內(nèi)容在中斷處理stm32f10x_it.c文件里中僅串口1子函數(shù)非空,進(jìn)入中斷處理函數(shù)后,只有串口1有參數(shù)輸出。


5.10.7  main.c文件里內(nèi)容
  在主程序中采用while(1)語(yǔ)句,采用中斷方式。


5.10.8 程序下載
在這一章節(jié)中我采用串口通訊方式讀取藍(lán)牙模塊數(shù)據(jù),數(shù)據(jù)讀入后通過(guò)程序轉(zhuǎn)換直接串口打印輸出至屏幕顯示。
請(qǐng)根據(jù)下圖所指向的7個(gè)重點(diǎn)區(qū)域配置。其中(1)號(hào)區(qū)域根據(jù)自己機(jī)器的實(shí)際情況選擇,我的機(jī)器虛擬出來(lái)的串口號(hào)是COM3。(2)號(hào)區(qū)域請(qǐng)自己選擇程序代碼所在的文件夾。(7)號(hào)區(qū)域當(dāng)程序下載完后,進(jìn)度條會(huì)到達(dá)最右邊,并且提示一切正常。(4、5、6)號(hào)區(qū)域一定要按照上圖顯示的設(shè)置。當(dāng)都設(shè)置好以后就可以直接點(diǎn)擊(3)號(hào)區(qū)域的開(kāi)始編程按鈕下傳程序了。


本節(jié)實(shí)驗(yàn)的源代碼在光盤(pán)中:(LY-STM32 光盤(pán)資料\1.課程\5, 模塊篇\模塊篇-10.藍(lán)牙串口模塊(HC-05)實(shí)驗(yàn)\程序)
5.10.9 實(shí)驗(yàn)效果圖把HC-05藍(lán)牙串口模塊和大黃蜂開(kāi)發(fā)板連接好,送電后下載程序,如“圖5.10.9 藍(lán)牙串口模塊實(shí)驗(yàn)效果圖”程序下載完成后,通過(guò)眾想科技多功能監(jiān)控軟件可以監(jiān)聽(tīng)到藍(lán)牙模塊發(fā)送出來(lái)的數(shù)據(jù)。
5.10.10小常識(shí)(非常重要)
TXD:發(fā)送端,一般表示為自己的發(fā)送端,正常通信必須接另一個(gè)設(shè)備的RXD。
RXD:接收端,一般表示為自己的接收端,正常通信必須接另一個(gè)設(shè)備的TXD。
VCC:接電源正極GND:接電源負(fù)極RXD:接收端,藍(lán)牙模塊接收從其它設(shè)備發(fā)來(lái)的數(shù)據(jù);正常情況接其它設(shè)備的發(fā)送端TXD;TXD:發(fā)送端,藍(lán)牙模塊發(fā)送數(shù)據(jù)給其它設(shè)備;正常情況接其它設(shè)備的接收端RXD;EN:使能端,需要進(jìn)入AT模式時(shí)接3.3V;
自收自發(fā):正常通信時(shí)RXD接其他設(shè)備的TXD,因此如果要接收自己發(fā)送的數(shù)據(jù)顧名思義,也就是自己接收自己發(fā)送的數(shù)據(jù),即自身的TXD直接連接到RXD,用來(lái)測(cè)試本身的發(fā)送和接收是否正常,是最快最簡(jiǎn)單的測(cè)試方法,當(dāng)出現(xiàn)問(wèn)題時(shí)首先做該測(cè)試確定是否產(chǎn)品故障。也稱回環(huán)測(cè)試。


作者: lanxichang    時(shí)間: 2022-5-30 19:28
為什么屏弊掉了?版主大人




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1