Android通過HC-05與51單片機簡單通訊

藍牙HC05是主從一體的藍牙串口模塊;拿到模塊需要對該模塊進行配置,比如藍牙名稱、連接時的密碼、主從和波特率等。

一、需要的工具:

usb轉ttl模塊(CH340G)

藍牙HC-05(我買的是兼容版的,功能沒差)

杜邦線4根

                                                         

二、連線

連接usb轉ttl模塊和藍牙模塊,把兩個模塊的VCC口相連,GND口相連,TX和RX交叉相連(既TX連RX,RX連TX)

注意:請勿將電源接到信號腳上,會直接燒壞模塊!輸入電壓禁止超過7V!

注意:藍牙模塊的VCC只能接5V,不能接3.3V!

三、開始設置

連接好兩個模塊之後,按住藍牙模塊上的小按鈕(按住上電是配置模式,直接上電是正常使用模式),然後把usb轉ttl模塊插上電腦(一直按住小按鈕直到通電)。

注意:紅燈快閃是正常使用模式,紅燈慢閃是配置模式

然後打開串口調試助手,點擊通用串口,如上圖所示;選擇usb轉ttl模塊的端口(具體是哪個,可以去查看設備管理器中usbttl是哪個com口,如下圖所示);

之後選擇藍牙串口,點擊AT按鈕,如果左邊界面出現OK字樣就證明已經連接成功了,然後就開始根據需求進行配置

配置:(點完都要再點下手動發送,然後在看左邊窗口是否返回ok,纔算成功設置)

  • 點擊設置從機。
  • 點擊設置模式,在右上角改1爲0然後點擊手動發送。
  • 點擊設置波特率,PS:波特率要和單片機的波特率設置爲一樣,通常51單片機的程序都是用9600,這裏默認9600(跟單片機上的晶振的多少而設,11.0592爲9600)。
  • 設置密碼,默認1234,自己隨意設置。
  • 設置名稱,自己隨意設置。

四、Android手機與HC-05簡單通訊

通過以上步驟配置後,就可以進行簡單配置通訊了

1、HC-05與單片機相連(TX連RX,RX連TX)

2、燒錄以下事例,主要是對led的控制,數據的收發(有人說燒錄程序時,要把藍牙連接的tx/rx口斷開,經測試無需斷開,沒有任何影響;要是覺得有影響,可以在每次燒錄程序前斷開該兩端口即可)

#include <reg52.h>

sbit led1 = P1^0;
sbit led2 = P1^1;

char i, date, num;

/*串口初始化配置*/
void UartConfiguration() 
{
    TMOD=0x20;      //設置計數器1的工作方式2
    TH1=0xfd;       //設置計數器1的初值,決定波特率
    TL1=0xfd;       //設置計數器1的初值,決定波特率
    PCON=0x00;      // 波特率倍增0x00不加倍       0x80加倍
    SCON=0x50;      //設置工作方式1 開啓接受允許
    EA=1;           //開啓總中斷
    ES=1;           //開啓串口接受中斷
    TR1=1;         //計數器1開始運行
}

/*發送數據*/
void sendDate(char date)
{
    SBUF=date;       //接收到的數據放入發送緩存器發送
    while(!TI);      //等待發送數據完成
    TI=0;            //清除發送完成標誌位
}

//發送字符串
void  PostString(unsigned char *p)  
{  
	while(*p)  	   //若指針指向地址爲空,則跳出循環
	{  
		sendDate(*p); //指針第一次默認指向首地址
		delay(20);  //延時,提高發送準確度
		p++;  
	}	  
}

void main()
{
    UartConfiguration();
    while(1)
    {
        if(num == 20) 
        {                  
            num = 0;                       
            sendDate('1');  //發送字符1 
            //比如發送DHT11的溫溼度到手機上 
            //PostString("38.1");                  
        }                  
    }

}

/*中斷函數*/
void Uart() interrupt 4
{
    date=SBUF;        //取出接受到的數據
    RI=0;             //清除接受中斷標誌位
    //收到的數據是date
    if (date==0x31){led1=0;}    
    if (date==0x08){led2=0;}         
    if (date==0x05){led1=1;led2=1;}
    num++;
}

3、Android機打開藍牙串口調試助手(文末提供下載地址,網上的都是廣告,功能都用不到,看得心煩,然後自己敲了一個)

                                                

查看手機是否連接至HC-05了,然後通過發送代碼中的特定指令,對LED燈的開關及HC-05向手機發送數據的測試

4、至此通過HC-05Android手機對單片機的控制就完成了,是不是很簡單o(* ̄) ̄*)o

 

點擊下載以上用到的工具

Android藍牙串口調試助手
PC串口調試助手

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章