stm32f407兩個藍芽模組通訊配置

2021-10-09 14:45:08 字數 1803 閱讀 9117

藍芽模組使用的是xy_mbd07,xy-mbd07a 模組有兩種工作模式: at 指令工作模式,串列埠資料透傳模式。模組未建立連線時模組處於 at指令工作模式,當模組建立連線後模組處於串列埠資料透傳模式。當模組建立連線後, cmd_data_switch 引腳接低電平,模組會進入 at 指令工作模式。

配置過程

串列埠配置

這裡使用的是串列埠4

void

uart4_init

(u32 bound)

串列埠中斷配置

uint8_t fcount;

uint8_t scount;

uint8_t tempdata[20]

[50];

volatile uint8_t okflag;

volatile uint8_t completeflag;

uint8_t buff[20]

;volatile uint8_t conectflag;

uint8_t i,len,j;

void

uart4_irqhandler

(void

)elseif(

strcmp

(tempdata[fcount]

,"scan completed\r\n")==

0)//掃瞄完成返回 scan completed

memset

(tempdata,0,

sizeof

(tempdata));

break;}

memset

(buff,0,

sizeof

(buff));

} count1 =0;

memset

(tempdata,0,

sizeof

(tempdata));

}else}}

}

串列埠傳送配置

void

uart4_senddata

(uint8_t *sen_buf,uint8_t sen_len)

}

主函式

#include

"sys.h"

#include

"delay.h"

#include

"usart.h"

extern uint8_t okflag;

//返回ok標誌

extern uint8_t completeflag;

//掃瞄完成標誌

extern uint8_t conectflag;

//獲取位址成功標誌

extern uint8_t fcount;

extern uint8_t buff[20]

;uint8_t connectbuff[50]

;//設定波特率

uint8_t buletooth_set

(uint8_t *data1,uint8_t *data2)

}return0;

}//藍芽連線

uint8_t buletooth_connect

(uint8_t *data)

}memset

(buff,0,

sizeof

(buff));

return0;

}int

main()

以上就是xy-mbd07a 藍芽模組配對過程配置,配對完成之後連個藍芽就可以進行通訊了

基於stm32f407建立stm32F427工程

分為三個部分 1.啟動檔案 2.fwilib 包含兩個資料夾inc和src。src裡面是stm32資源的c檔案,inc則是32資源的h檔案 3.user這也是我不太理解的部分 ddbugconfig只包含了用於debug的初始化,則是f4的系統檔案。我是在f407的基礎上改的 總的來說 1.改了晶元...

STM32F407上除錯freeRTOS問題

是在正點原子的阿波羅stm32f429開發板上的例子改來的,他們的編譯沒有問題,我編譯時出現如下問題 定位到出錯的地方,是 再追 configmax syscall interrupt priority 的定義是 define configmax syscall interrupt priority...

STM32F407 驅動外部SRAM

需要驅動的sram型號為is61lv25616al,價效比比51216的高很多 配置cubemx 這幾個時序比較關鍵,可以按照手冊來計算,我用下來這幾個數值比較合適。然後就沒有然後了,生成 就可以用了。檢查sram內容是否正確 uint8 t bsp testextsram void 寫sram p...