標題: 基于stm32的藍牙串口收發(fā)系統(tǒng)源程序 OneNet開發(fā)板 [打印本頁]

作者: Vence    時間: 2019-10-17 09:35
標題: 基于stm32的藍牙串口收發(fā)系統(tǒng)源程序 OneNet開發(fā)板
本實驗利用信馳達的藍牙模塊進行串口的收發(fā)任務,stm32f103用的是串口1,手機APP用的是LighntBlue,藍牙名字為Vence,stm32開發(fā)板為中國移動的OneNet開發(fā)板
①連線
藍牙模塊                stm32f103
VCC                      VCC
GND                      GND
EN                       PC10
RX                       TX1
TX                       RX1
BRTS                     GND
P04                      PC7
P05                      PC8

②藍牙模塊的工作模式
啟動藍牙模塊需要將EN置0,BRTS置0,接上電源,就開始廣播模式
當連接成功時,P04為高電平,P05為低電平
利用stm32啟動的方式為,接上電源,按下Key1鍵盤,此時藍燈,紅燈,黃燈亮起;
紅燈亮,綠燈滅,還沒有連接成功,如果紅燈滅,綠燈亮就代表已經(jīng)連接成功

③stm32發(fā)送固定數(shù)據(jù)到手機APP
{0x67,0x6c,0x75,0x05,0x20}
通過按下stm32的按鍵1,也就是PC13口,會發(fā)送數(shù)據(jù)到手機,此時黃燈如果是滅的狀態(tài),就改為亮,如果是亮的狀態(tài)就改為滅


④手機APP發(fā)送數(shù)據(jù)到stm32
如果手機發(fā)送的一個字節(jié)為0x01,通過代碼判斷是0x01的話,黃燈的狀態(tài)就會取反

原理圖:



啟動狀態(tài)指示燈:接通電源,按下key1,紅、黃、藍色同亮



LightBlue搜索到Vence藍牙名字:Vence




點擊連接,連接成功后,指示燈變?yōu)樗{、黃、綠



app的0xFFE4端口開啟接收數(shù)據(jù),按下Key1,發(fā)送指令的數(shù)據(jù){0x67,0x6c,0x75,0x05,0x20}到app,此時黃燈狀態(tài)取反,APP收到數(shù)據(jù)




在APP的0XFFE9端口輸入0x01,stm32判斷后,黃燈的狀態(tài)取反



stm32主函數(shù)代碼:
  1. //本設計利用信馳達進行藍牙通信,stm32的PC10控制藍牙模塊的使能,藍牙模塊的工作電壓范圍在1.8-3.3V,具有低功耗

  2. #include "stm32f10x.h"
  3. #include "usart1.h"
  4. #include "bluetooth.h"
  5. #include "key.h"
  6. #include "led.h"

  7. u8 GLU[5] = {0x67,0x6c,0x75,0x05,0x20};
  8. int main(void)
  9. {
  10.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);                         //中斷控制器分組設置
  11.         Key_Init();                                                                                                            //初始化按鍵
  12.         EXTI_Configuration();
  13.         Usart1_Init(115200);                                                                   //設置串口1的波特率為115200bit
  14.         LedInit();                                                                                                    //初始化led
  15.         Delay_Init();                                                                                                 //初始化延遲函數(shù)
  16.         BlueTooth_Init();                                                                                //初始化藍牙模塊
  17.         USART_Cmd(USART1, DISABLE);                                                                                                        //除能串口
  18.         while(1)
  19.         {
  20.                 USART_ClearFlag( USART1, USART_FLAG_TC );
  21.                 if(send_flag == 1)
  22.                 {
  23.                         USART_Cmd(USART1, ENABLE);                                                                                                                //除能串口
  24.                         GPIO_ResetBits(GPIOC,EN);                                           //使能藍牙模塊
  25.                         DelayMs(20);                                                                      //啟動藍牙模塊延遲20ms
  26.                         while(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_7) != Bit_SET || GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8) != Bit_RESET);
  27.                         Usart_SendString(USART1, GLU);
  28.                         //GPIO_SetBits(GPIOC,EN);                                        //發(fā)送完數(shù)據(jù)除能藍牙模塊        
  29.                         DelayMs(20);                                                                    //啟動藍牙模塊延遲20ms
  30.                         send_flag = 0;
  31.                         //USART_Cmd(USART1, DISABLE);                                                                                  //除能串口
  32.                 }
  33.         }
  34. }
復制代碼

全部資料51hei下載地址:
資料(藍牙模塊說明書,OneNet開發(fā)板原理圖,源碼).7z (2.35 MB, 下載次數(shù): 35)







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1