前述:
QQ:3177227373
V X:F9986858
這個是自己的子產品學習心得體會。
藍牙子產品資料 (點選藍色字型即可跳轉)
提取碼:1cay
子產品購買位址:淘寶優信電子店鋪
https://item.taobao.com/item.htm?spm=a1z09.8149145.0.0.6a204347x5jZtV&id=586532434913&_u=32ap3f8l683f
要想自己能學會并使用,需要結合别人的經驗和方法和手冊,這是我一個大學學長(振華哥)給我的建議,學習什麼晶片資料都得去看手冊。我剛開始看見手冊密密麻麻的字就不想看,覺得特别枯燥無聊,就想讓别人直接手把手教我,但是發現這樣不是什麼好習慣,用小夥伴的話說就是:you see see you,one day day,only know want 白嫖。當被别人這樣說的時候我心裡感覺很羞愧,是以我後來不會的都是自己先百度、論壇看看,再看看手冊,實在不會了才會去請教學長和老師。
這個是自己在2019年寒假過年的時候在家裡無聊,想着就想學習一下資料的無線傳輸,然後首先就買了HC-05藍牙子產品的ESP8266 WIFI子產品,自己多學點知識,才能在和别人交流的時候侃侃而談。說直白點,你啥都不會,還不學,别人都不想和你聊天。
要相信:你若盛開,清風自來。
子產品介紹:
藍牙HC05是主從一體的藍牙序列槽子產品,簡單的說,當藍牙裝置與藍牙裝置配對連接配接成功後,我們可以忽視藍牙内部的通信協定,直接将将藍牙當做序列槽用。當建立連接配接,兩裝置共同使用一通道也就是同一個序列槽,一個裝置發送資料到通道中,另外一個裝置便可以接收通道中的資料。是以一般在學習的時候可以先學習怎麼配置藍牙子產品,并進行資料的收發就好了,先差不多會用。
核心子產品使用HC-05從子產品,引出接口包括VCC,GND,TXD,RXD,KEY,STATE
VCC GND是電源引腳
TXD RXD是序列槽通信引腳
KEY是在代碼配置的時候單片機控制它的高低
STATE是連接配接狀态引腳,已連接配接的時候是高電平,未連接配接是低電平
子產品進入AT模式的兩種方法:
1、子產品上電,未配對情況下就是AT模式,波特率為子產品本身的波特率,預設: 9600, 發送AT指令時需要置高一次PIO11(即按一下子產品上面的按鍵)。
2、PI011置高電平後(按鍵按下),子產品上電,此時子產品進入AT模式,波特率固定為: 38400, 可以直接發送AT指令。
(注:當使用者忘記子產品本身波特率時,使用第二種方法固定為38400,平時建議使用者使用第-種方法進入AT模式! )
一、配置方法:
1、用序列槽調試助手配置
先根據如果所示連接配接藍牙子產品
然後打開資料裡面的序列槽調試助手 XCOM V2.0
根據我底下配圖配置好調試助手就可以根據手冊發送AT指令進行配置藍牙子產品了。
發送某些指令的時候需要置高一次34腳,就是按一下藍牙子產品上的按鍵。有些指令是需要一直置高34腳,即一直按着按鍵,否則不能配置。
2、用單片機序列槽發送AT指令配置
單片機序列槽發送字元串代碼:
void send(unsigned char *p)
{
unsigned char index=0;
do
{
SBUF=p[index++];
while(TI == 0);
TI = 0;
}
while(p[index]!=0);
}
函數配置:
unsigned char HC05_NAME[] = "AT+NAME=BBBBBB\r\n";//34腳一直置高
unsigned char HC05_PSWD[] = "AT+PSWD=1234\r\n";//34腳置高一次
void main()
{
Bloot_Key=1;//配置藍牙子產品名稱的時候34腳 一直置高
UartInit();
send(HC05_NAME);//發送藍牙名稱AT指令
delay_ms(1000);
Bloot_Key=0;
Bloot_Key=1;//配置子產品的配對密碼34腳 置高一次
delay_ms(500);
Bloot_Key=0;
send(HC05_PSWD);//發送配對密碼AT指令
while(1);
}
二、資料收發:
HC-05主從機一體藍牙子產品使用的是序列槽通信,即
子產品的TXD連接配接MCU的RXD
子產品的RXD連接配接MCU的TXD
資料接收:
void Usart() interrupt 4
{
if(RI)
{
RI = 0;
Dat=SBUF;
}
}
資料發送:
void sendata(unsigned char temp) //序列槽發送
{
SBUF=temp;
while(!TI); //等待資料發送成功
TI=0; //軟體清零
}
然後在主程式對接收的資料進行解析處理,然後發送資料。
三、子產品的連接配接:
1、兩個藍牙子產品的連接配接
由于買到的藍牙子產品預設都是從機,是以需要把其中一個用AT指令配置成主機。AT指令如下:
配置成功後,隻需要給兩個子產品供電即可自行連接配接,如果連接配接成功的話訓示燈會兩快閃滅一下,并且閃爍是同步的。(藍牙預設配對密碼是1234.不要修改配對密碼,否則會連接配接不成功)
這是簡單的連接配接方法,但是我看那個AT指令表,可以配置藍牙子產品,讓它連接配接指定位址的藍牙子產品,可以自行檢視AT指令的第15、27、32、33指令。
2、藍牙子產品和手機的連接配接
藍牙子產品為從機,在手機端下載下傳一個藍牙序列槽軟體。
我用的藍牙序列槽軟體:(需要的話加我QQ傳給你)
可以設定按鍵鍵盤,按下按鍵發送資料。
這個按鍵鍵盤是自己做的一個藍牙遙控車的鍵盤操作。最近實驗室裝修,視訊會在後續更新到此文章後面。
附錄:
1, AT+ROLE設定主從模式:
AT+ROLE?是查詢主從狀态;AT+ROLE=1是設成主,AT+ROLE=0是設成從,AT+ROLE=2設成回環角色(Slave-Loop(回環角色)——被動連接配接,接收遠端藍牙主裝置資料并将資料原樣傳回給遠端藍牙)。
2, AT+RESET:HC-05複位
3, AT+VERSION?:擷取HC-05的軟體版本号,隻能擷取,不能修改。
4, AT+ORGL:恢複出廠預設設定,當把子產品設定亂了,使用此指令進行恢複預設值。
5, AT+ADDR?:擷取HC-05的藍牙位址碼,隻能擷取,不能修改。
6, AT+NAME?:擷取HC-05的名字,AT+NAME=BSP-06,修改子產品的名字為BSP-06,具體名字自行修改。
7, AT+CLASS?:設定查詢裝置的類型,盡量不要去修改此參數。預設是1F00。
8, AT+IAC?:查詢設定查詢通路碼,預設是9E8B33,盡量不要去修改此參數。
9, AT+PSWD?:查詢設定配對密碼,AT+PSWD=”0000”,密碼要有雙引号,密碼是四位數字.
10, AT+UART:AT+UART?是查詢目前子產品的波特率,AT+UART=波特率,0,0。
11, AT+CMODE:AT+CMODE?是查詢目前連接配接模式。AT+CMODE=0,1,2(0——指定藍牙位址連接配接模式(指定藍牙位址由綁定指令設定)1——任意藍牙位址連接配接模式(不受綁定指令設定位址的限制)2——回環角色(Slave-Loop)預設連接配接模式:0)。
12, AT+BIND:AT+BIND?查詢目前綁定位址,AT+BIND=NAP,UAP,LAP(用逗号隔開)。
13, AT+RMADD:從藍牙配對清單中删除所有認證裝置.
14, AT+STATE?:擷取藍牙子產品工作狀态.
15, AT+LINK=NAP,UAP,LAP:與遠端裝置建立連接配接。
16, AT+DISC:斷開連接配接.
17, AT+RNAME?NAP,UAP,LAP:擷取遠端藍牙裝置名稱.
18, AT+ADCN?:擷取藍牙配對清單中認證裝置數。
19, AT+MRAD?擷取最近使用過的藍牙認證裝置位址。
20, AT+INQM:設定查詢模式,AT+INQM=1,9,48(1-帶RSSI信号強度訓示,9-超過9個藍牙裝置響應則終止查詢,48-設定逾時為48*1.28=61.44秒)