前言
不論是HC05還是HC06,我們用到的都是藍(lán)牙模塊的透?jìng)鞴δ埽恍枰玫?個(gè)引腳:RXD、TXD、VCC(5V)、GND。
HC-05的使用
1、HC-05有6個(gè)引腳,但是我們只用到4個(gè)。
2、HC-05正面有一個(gè)按鍵。與HC-06的區(qū)別是,它上電之前必須要按住此按鍵再插入電腦中,才能夠進(jìn)入AT模式。HC-06沒有按鍵,直接插上就進(jìn)入AT模式,藍(lán)牙模塊閃慢燈(1s1次)。
3、用一個(gè)usb轉(zhuǎn)ttl模塊與HC-05連接,usb轉(zhuǎn)ttl模塊與電腦連接,使用串口調(diào)試助手,在藍(lán)牙模塊的AT模式下可以用一些AT指令與藍(lán)牙模塊進(jìn)行交互。
藍(lán)牙模塊默認(rèn)波特率是38400,把停止位設(shè)置成1,數(shù)據(jù)位設(shè)置成8,校驗(yàn)位設(shè)置為none。
HC-05常用AT指令:
指令名? ? ? ? ? ? ? ? ? ? ? ?響應(yīng)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 含義
AT+NAME?? ? ? ? ? ? ? +NAME:Param OK? ? ? ? ?獲得設(shè)備名稱
AT+NAME=Param? ?OK? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??設(shè)置設(shè)備名稱? Parm:想要設(shè)置的名字
AT+ROLE=0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 藍(lán)牙模塊為從模式
AT+CMODE=1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 藍(lán)牙模式設(shè)置為任意地址連接模式,可以被任意設(shè)備連接
AT+PSWD=1234? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?藍(lán)牙配對(duì)密碼為1234
AT+UART=9600,0,0? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 設(shè)置藍(lán)牙通信波特率為9600,停止位1位,無校驗(yàn)位
HC-06的使用
HC-06與HC-05不同的是 :
?1、 HC-05一般都是主從機(jī)一體,既可以設(shè)置為主機(jī)也可以設(shè)置為從機(jī)。
??而HC-06在市場(chǎng)上分為兩種情況,一種是:主從機(jī)一體;另外一種是:只有從機(jī)功能。AT+ROLE設(shè)置主從模式: AT+ROLE?是查詢主從狀態(tài);AT+ROLE=1是設(shè)成主;AT+ROLE=0是設(shè)成從。
?
這個(gè)默認(rèn)波特率不是每個(gè)藍(lán)牙模塊都一樣的,有的藍(lán)牙模塊默認(rèn)波特率是115200,使用的時(shí)候需要看下商家資料?;蛘呙總€(gè)波特率試著改一下,總能試出來藍(lán)牙模塊的默認(rèn)波特率。試成功的現(xiàn)象是AT模式下,通過電腦的串口助手,電腦能夠和藍(lán)牙模塊正常通信。達(dá)到此效果后,手機(jī)連上藍(lán)牙,肯定可以與單片機(jī)進(jìn)行通信。
HC-06常用AT指令
一般只用前3個(gè)即可。
藍(lán)牙模塊連上手機(jī)與STM32通信
?將藍(lán)牙模塊配置好以后,再次上電,打開手機(jī)藍(lán)牙調(diào)試助手,這里推薦兩個(gè)app:“藍(lán)牙調(diào)試器”和“藍(lán)牙調(diào)試寶”,實(shí)測(cè)好用;在app內(nèi)連上藍(lán)牙模塊,此時(shí)藍(lán)牙模塊就相當(dāng)于連接手機(jī)與單片機(jī)的橋梁,在stm32中寫一些程序,就可以實(shí)現(xiàn)手機(jī)與stm32通信了。
注意:?jiǎn)纹瑱C(jī)的波特率一定要配置得和藍(lán)牙模塊的波特率一致。
STM32程序
藍(lán)牙實(shí)現(xiàn)手機(jī)與單片機(jī)通信的原理就是使用串口,所以單片機(jī)中進(jìn)行cubmx配置和寫串口的程序就可以了;這里大家可以參考一下我的這篇文章,里面詳細(xì)介紹了stm32串口基本使用:STM32系列——串口收發(fā)數(shù)據(jù)基礎(chǔ)文章來源:http://www.zghlxwxcb.cn/news/detail-446533.html
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
/*宏定義*/
uint8_t RX_dat = 0;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)//串口中斷服務(wù)函數(shù)
{
if(huart->Instance == USART1)//判斷是否為串口1
{
if(huart->Instance == USART1)
{
if(RX_dat == 'a')//接收到字符a
{
//寫上要執(zhí)行的內(nèi)容
HAL_UART_Receive_IT(&huart1,&RX_dat,1);//每次接收以后都要再次開啟接收中斷
}
else if(RX_dat == 'b')//接收到字符b
{
//寫上要執(zhí)行的內(nèi)容
HAL_UART_Receive_IT(&huart1,&RX_dat,1);//每次接收以后都要再次開啟接收中斷
}
}
}
}
/* USER CODE END 0 */
/* USER CODE BEGIN 2 */
HAL_UART_Receive_IT(&huart1,&RX_dat,1);//開啟接收中斷
/* USER CODE END 2 */
?手機(jī)app發(fā)送數(shù)據(jù)端
手機(jī)app發(fā)送數(shù)據(jù)端可能需要配置一下,要將發(fā)送的數(shù)據(jù)格式與程序中寫的接收數(shù)據(jù)的格式對(duì)應(yīng),否則手機(jī)發(fā)送的數(shù)據(jù)單片機(jī)可能也接收不到。?文章來源地址http://www.zghlxwxcb.cn/news/detail-446533.html
到了這里,關(guān)于STM32系列——手把手教你藍(lán)牙模塊HC05、HC06的使用,重在“用起來”(HAL庫)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!