51單片機(jī)藍(lán)牙模塊(HC05)及其運(yùn)行原理
一、測(cè)試藍(lán)牙模塊
- 在所有工作進(jìn)行之前首先看一看自己的藍(lán)牙模塊是否是正常的,這一步很重要。一塊正常的藍(lán)牙模塊是所有后續(xù)工作的基礎(chǔ)!
-
首先把藍(lán)牙模塊鏈接到51單片機(jī)上
-
這時(shí)需要注意?。?!我們需要將藍(lán)牙模塊的RXD和單片機(jī)上的P30(RXD)引腳連接,將藍(lán)牙模塊的TXD和單片機(jī)上的P31(TXD)引腳連接。因?yàn)橄乱徊轿覀冃枰獙纹瑱C(jī)主板和電腦進(jìn)行連接,電腦先通過USB模塊轉(zhuǎn)TTL模塊連接到單片機(jī),再通過單片機(jī)的P30和P31引腳連接到藍(lán)牙模塊。藍(lán)牙模塊需要將電腦傳送的數(shù)據(jù)通過RXD接收到。(此時(shí)單片機(jī)只起到了導(dǎo)線的作用,并且在單片機(jī)內(nèi)部實(shí)現(xiàn)了串口通信的交叉連接,所以RXD和RXD連接TXD和TXD連接)
-
如果不通過單片機(jī)連接,按照下圖中的連接方式也是可以的!直接借用主板的USB轉(zhuǎn)TTL模塊實(shí)現(xiàn)電腦和藍(lán)牙模塊的串口通信,進(jìn)行后續(xù)的測(cè)試和配置?。ㄗ⒁獯藭r(shí)就需要按照串口通信的規(guī)則進(jìn)行交叉連接RXD和UTX連接,TXD和URX連接)
-
我們需要知道藍(lán)牙模塊有兩種模式(配置模式,工作模式),此時(shí)我們需要進(jìn)入藍(lán)牙模塊的配置模式進(jìn)行檢測(cè)藍(lán)牙模塊是否正常,順便做一下個(gè)性化設(shè)置!進(jìn)入配置模式的方法很簡(jiǎn)單,將主板通過USB線連接到電腦上(注意:此時(shí)主板電源要關(guān)閉)!按住藍(lán)牙模塊上的小按鈕然后打開主板電源,直到藍(lán)牙模塊的指示燈兩秒閃爍一次,現(xiàn)在就進(jìn)入了藍(lán)牙模塊的配置模式!
配置模式:用來設(shè)置主從機(jī)、波特率、密碼、連接等一系列信息(使用AT指令);其中需要我們?cè)O(shè)置的是波特率,主從機(jī)以及密碼。其具有斷電保存的功能,所以我們一般只需要配置一次。
工作模式:當(dāng)設(shè)置完配置模式一系列參數(shù)后,我們便可以進(jìn)入正常模式,將藍(lán)牙模塊和另一個(gè)擁有藍(lán)牙模塊的設(shè)備進(jìn)行通信,從而傳遞數(shù)據(jù) -
- 接下來就需要打開串口調(diào)試工具進(jìn)行測(cè)試和配置。
1. 端口號(hào)選擇你的USB串口(CH340)。一般情況下上面都會(huì)自動(dòng)顯示出USB的樣式!
2. 設(shè)置波特率為38400(配置模式下的波特率永遠(yuǎn)都是38400不會(huì)改變)
3. 記得勾選加回車換行,然后點(diǎn)擊打開串口!
4. 發(fā)送AT - 返回OK則表明藍(lán)牙模塊是正常的,如果沒反應(yīng)就多檢查幾次看看哪里沒做對(duì)!大多數(shù)時(shí)候是自己出了小錯(cuò)誤導(dǎo)致的!
二、配置藍(lán)牙模塊
- 接著上一步發(fā)送指令
AT+ROLE=0 (藍(lán)牙模塊設(shè)為從機(jī),此時(shí)只可以被搜索)
AT+CMODE=1 (藍(lán)牙模塊可以和任意設(shè)備連接)
AT+UART=9600,0,0 (設(shè)置波特率9600)
AT+NAME=WARNING (設(shè)置藍(lán)牙的名字為HC05,手機(jī)藍(lán)牙搜索時(shí)就找這個(gè)名字)
AT+PSWD=123456 (設(shè)置密碼,手機(jī)藍(lán)牙串口APP連接藍(lán)牙模塊,需要輸入密碼)
三、燒寫程序
- 相信這一步不用我說太多,我只說一個(gè)思路!
- 這個(gè)程序只需要把接收到的數(shù)據(jù)按照原路返回即可(即藍(lán)牙接收到從電腦發(fā)送的數(shù)據(jù),然后傳輸給單片機(jī),單片機(jī)的處理過程就是原封不動(dòng)通過藍(lán)牙再傳給電腦)大家可以參考下面的代碼!當(dāng)然大家也可以自己寫一些有趣的程序!在此只是用作理解藍(lán)牙模塊的工作原理!
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
void uart_init(u8 baud)
{
TMOD|=0x20; //設(shè)置計(jì)數(shù)器工作方式
SCON=0x50; //包括 SM0,SM1(控制工作方式),SM2(如果有多個(gè)接收端這個(gè)可以通過RB8位控制哪個(gè)接收端可以接收到信息),REN(允許接收位,默認(rèn)設(shè)置成1即允許接收)TB8,RB8(用作工作方式2,3下的第九位數(shù)據(jù)),TI(發(fā)送中斷標(biāo)志位),RI(接收中斷標(biāo)志位)
PCON=0x80; //設(shè)置SMOD=1
TH1=baud; //設(shè)置計(jì)時(shí)器初值
TL1=baud;
ES=1;
EA=1;
TR1=1;
}
void uart() interrupt 4
{
u8 temp=0;
temp=SBUF;
RI=0;
SBUF=temp;
while(!TI);
TI=0;
}
void main()
{
uart_init(0xFA); // 波特率設(shè)置成9600的初值就是0xfa
while(1)
{
}
}
四、測(cè)試
現(xiàn)在我們就可以通過藍(lán)牙模塊來訪問單片機(jī)了!
- 首先將主板斷電,然后把主板從電腦上拔下來找個(gè)充電器插頭獨(dú)立供電,此時(shí)我們需要注意我們需要將藍(lán)牙模塊的RXD引腳和TXD引腳進(jìn)行互換!(此時(shí)從電腦的USB串口通信轉(zhuǎn)變成了通過藍(lán)牙模塊的串口通信)我們需要記住的是串口通信是需要將RXD和TXD進(jìn)行交叉連接的,無論是通過什么媒介,USB也好藍(lán)牙也好都是串口通信
- 打開單片機(jī)主板電源!打開電腦藍(lán)牙進(jìn)行搜索并輸入密碼連接!
- 接下來就可以進(jìn)行測(cè)試了
- 打開串口調(diào)試工具
- 端口號(hào)選擇藍(lán)牙鏈接的串口(我這個(gè)是之前鏈接的不知道怎么名字就變了)
注意:一般情況下端口會(huì)顯示COM 5 藍(lán)牙連接上的標(biāo)準(zhǔn)串行字樣,如果顯示的不對(duì)可以都試一試,但肯定不是COM4(即USB串口CH340) - 波特率是9600
- 打開串口調(diào)試工具
此時(shí)你發(fā)送的信息就會(huì)被單片機(jī)原路返回顯示在窗口上,我們的藍(lán)牙模塊探索之旅就此結(jié)束了!
參考博文
在此非常感謝冰心-學(xué)術(shù)trash博主這篇博文的幫助!文章來源:http://www.zghlxwxcb.cn/news/detail-402954.html
51單片機(jī)與HC-05藍(lán)牙模塊(手機(jī)藍(lán)牙控制小燈之小白速成)文章來源地址http://www.zghlxwxcb.cn/news/detail-402954.html
到了這里,關(guān)于51單片機(jī)藍(lán)牙模塊(HC05)運(yùn)行原理的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!