文件中Readme文件有連線方式,壓縮包含程序源碼,用keil打開口按照接線方式即可通行。
拿出來與大家分享,程序不復雜,只要有一點單片機的基礎即可,,
能力有限,歡迎私聊討論指出不足,不懂連線或其它地方也可私聊進行討論學習。
MCU:STM32F103
1、通過手機APP發(fā)送數(shù)據(jù)
2、通過手機APP發(fā)送指令
指令1:led0 控制led0燈狀態(tài)的反轉
指令2:led1 控制led1燈狀態(tài)的反轉
指令3:beep 控制蜂鳴器的開關
指令4:lcdwrite lcd 顯示一條標語 手機
可接收來自單片機的數(shù)據(jù),也可發(fā)送數(shù)據(jù)給單片機,
藍牙采用hc05從機模式接線方式:本程序采用usart3與藍牙進行通信,藍牙的RX引腳接usart3的TX,
藍牙的Tx接usart3的rx引腳,VCC接3.3V電源,KEY引腳接PA4,STATE引腳接PA15(若使用51單片機,請選用一份調試好串口的程序,將該程序進行部分移植即可)
藍牙指令:
AT OK
AT+VERSION? +VERSION:hc01.comV2.1
AT+NAME? +NAME:MrWang\r\n
at+name=MrWang OK
AT+ PSWD? +PSWD:123321
AT+ UART? +UART:9600,1,0
AT+UART=9600,1,0 OK
AT+RESET OK
AT+ ROLE? +ROLE:0
單片機源程序如下:
- //寄存器開發(fā)版本:原子開發(fā)板stm32f103
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "lcd.h"
- #include "key.h"
- #include "usart3.h"
- #include "HC05.h"
- #include "string.h"
- #include "lcd.h"
- #include "led.h"
- #include "beep.h"
- int main(void)
- {
- u16 reclen=0;
- Stm32_Clock_Init(9);
- delay_init(72);
- KEY_Init();
- HC05_Init(9600,36);
- uart_init(72,115200);
- LCD_Init();
- LED_Init();
- BEEP_Init();
- while(1)
- {
- if(USART3_RX_STA&0X8000) //說明接收到數(shù)據(jù),不懂就看usart3的中斷處理函數(shù)
- {
- reclen=USART3_RX_STA&0X7FFF; //得到數(shù)據(jù)長度
- USART3_RX_BUF[reclen]=0; //加入結束符
- //指令的匹配函數(shù),沒有應用到工程,這里就直接用if逐個判斷了
- if(!strcmp("led0",(const char*)USART3_RX_BUF))
- {
- LED0=~LED0;
- }
- else if(!strcmp("led1",(const char*)USART3_RX_BUF))
- {
- LED1=~LED1;
- }
- else if(!strcmp("beep",(const char*)USART3_RX_BUF))
- {
- BEEP=~BEEP;
- }
- else if(!strcmp("lcdwrite",(const char*)USART3_RX_BUF))
- {
- POINT_COLOR=RED;
- BACK_COLOR=DARKBLUE;
- LCD_ShowString(30,160,200,16,16,(u8*)"blue templete .......");
- }
- u3_printf("【發(fā)送數(shù)據(jù)】:%s\r\n",USART3_RX_BUF); //回顯函數(shù)
- USART3_RX_STA=0;
- }
- if(!KEY0)
- {
- SendData((u8*)"你好啊"); //做測試用
- }
- }
- }
復制代碼
所有資料51hei提供下載:
BULE(HC05).rar
(1.23 MB, 下載次數(shù): 96)
2018-5-17 16:36 上傳
點擊文件名下載附件
[官方]匯承HC-05藍牙串口模塊使用規(guī)格書(含指令集).pdf
(1.56 MB, 下載次數(shù): 34)
2018-5-17 16:36 上傳
點擊文件名下載附件
|