天天看點

HC-05藍牙子產品配置使用學習心得一、配置方法:二、資料收發:三、子產品的連接配接:

前述:

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、用序列槽調試助手配置

先根據如果所示連接配接藍牙子產品

HC-05藍牙子產品配置使用學習心得一、配置方法:二、資料收發:三、子產品的連接配接:

然後打開資料裡面的序列槽調試助手 XCOM V2.0

HC-05藍牙子產品配置使用學習心得一、配置方法:二、資料收發:三、子產品的連接配接:

根據我底下配圖配置好調試助手就可以根據手冊發送AT指令進行配置藍牙子產品了。

發送某些指令的時候需要置高一次34腳,就是按一下藍牙子產品上的按鍵。有些指令是需要一直置高34腳,即一直按着按鍵,否則不能配置。

HC-05藍牙子產品配置使用學習心得一、配置方法:二、資料收發:三、子產品的連接配接:

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

HC-05藍牙子產品配置使用學習心得一、配置方法:二、資料收發:三、子產品的連接配接:

資料接收:

void Usart() interrupt 4
{
	if(RI)
	{
		RI = 0;
		Dat=SBUF;
	}
}
           

資料發送:

void sendata(unsigned char temp)  //序列槽發送
{
	SBUF=temp;
	while(!TI);  //等待資料發送成功
	TI=0;         //軟體清零
}
           

然後在主程式對接收的資料進行解析處理,然後發送資料。

三、子產品的連接配接:

1、兩個藍牙子產品的連接配接

由于買到的藍牙子產品預設都是從機,是以需要把其中一個用AT指令配置成主機。AT指令如下:

HC-05藍牙子產品配置使用學習心得一、配置方法:二、資料收發:三、子產品的連接配接:

配置成功後,隻需要給兩個子產品供電即可自行連接配接,如果連接配接成功的話訓示燈會兩快閃滅一下,并且閃爍是同步的。(藍牙預設配對密碼是1234.不要修改配對密碼,否則會連接配接不成功)

這是簡單的連接配接方法,但是我看那個AT指令表,可以配置藍牙子產品,讓它連接配接指定位址的藍牙子產品,可以自行檢視AT指令的第15、27、32、33指令。

2、藍牙子產品和手機的連接配接

藍牙子產品為從機,在手機端下載下傳一個藍牙序列槽軟體。

我用的藍牙序列槽軟體:(需要的話加我QQ傳給你)

HC-05藍牙子產品配置使用學習心得一、配置方法:二、資料收發:三、子產品的連接配接:
HC-05藍牙子產品配置使用學習心得一、配置方法:二、資料收發:三、子產品的連接配接:

可以設定按鍵鍵盤,按下按鍵發送資料。

這個按鍵鍵盤是自己做的一個藍牙遙控車的鍵盤操作。最近實驗室裝修,視訊會在後續更新到此文章後面。

附錄:

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秒)

繼續閱讀