概述
本篇文章主要介紹如何使用STM32CubeMX對生成STM32WB工程,并通過手機(jī)APP與其連接。
硬件準(zhǔn)備
首先需要準(zhǔn)備一個開發(fā)板,這里我準(zhǔn)備的是NUCLEO-WB55RG 的開發(fā)板:
源碼下載
https://download.csdn.net/download/qq_24312945/85049386
選擇芯片型號
配置時鐘源
HSE與LSE分別為外部高速時鐘和低速時鐘,在本文中使用外置的時鐘源,故都選擇Crystal/Ceramic Resonator選項,如下所示:
配置時鐘樹
查看開啟STM32_WPAN條件
可以看到,需要開啟RF、RTC、RCC、IPCC、HSEM。
配置HSEM
硬件信號量(HSEM)模塊用于管理多個進(jìn)程之間共享的訪問權(quán)限和資源同步。
資料下載鏈接:https://www.stmcu.jp/wp/wp-content/uploads/files/presentation-ja/STM32WB/17_STM32WB-System-Hardware-Semaphore-(HSEM)_J.pdf 開啟HSEM如下。
配置IPCC
通信控制器(IPCC)模塊的主要用于cpu之間的信號消息交換。
配置RTC
啟動RF
配置USART
我們需要串口來打印數(shù)據(jù),以方便我們查看信息。 查看原理圖可以的是PB6和PB7與ST_Link鏈接在一起,且為串口打印端口。 開啟DMA。
開啟中斷。
開啟STM32_WPAN
無線個人區(qū)域網(wǎng)(wireless personal area network)。 由于我們使用的是藍(lán)牙,故勾選BLE。 配置自定義模板。
設(shè)置串口1跟蹤。 關(guān)閉MX_USART1_UART_Init函數(shù)的生成。
啟用串口1的tx的DMA。 啟動串口1調(diào)試跟蹤。
啟用應(yīng)用程序中的跟蹤 。
設(shè)置藍(lán)牙名稱,名稱為MY_BLE_DEV。
設(shè)置服務(wù)器配置。
設(shè)置特征名稱。
使能特征值讀取。
關(guān)閉GATT事件的返回。
設(shè)置RTC和RF的時鐘。
設(shè)置工程信息
工程文件設(shè)置
Keil工程配置
代碼配置
在main.c中添加如下頭文件。
/* USER CODE BEGIN Includes */
#include "stm32_seq.h"
/* USER CODE END Includes */
UTIL_SEQ_Run(UTIL_SEQ_DEFAULT)函數(shù)應(yīng)該在應(yīng)用程序的while循環(huán)中,啟動任務(wù)調(diào)度。
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
MX_APPE_Process();
/* USER CODE BEGIN 3 */
UTIL_SEQ_Run(UTIL_SEQ_DEFAULT);
}
/* USER CODE END 3 */
}
在app_entry.c中添加初始化 APPD_Init()。
void MX_APPE_Init( void )
{
System_Init( ); /**< System initialization */
SystemPower_Config(); /**< Configure the system Power Mode */
HW_TS_Init(hw_ts_InitMode_Full, &hrtc); /**< Initialize the TimerServer */
/* USER CODE BEGIN APPE_Init_1 */
APPD_Init();
/* USER CODE END APPE_Init_1 */
appe_Tl_Init(); /* Initialize all transport layers */
/**
* From now, the application is waiting for the ready event ( VS_HCI_C2_Ready )
* received on the system channel before starting the Stack
* This system event is received with APPE_SysUserEvtRx()
*/
/* USER CODE BEGIN APPE_Init_2 */
/* USER CODE END APPE_Init_2 */
return;
}
結(jié)果演示
下載完程序后,可以看到串口打印固件版本等信息。 打開ST BLE ToolBox軟件(APP在群內(nèi)有615061293),可以看到該藍(lán)牙已經(jīng)可以搜索到。
點擊connect進(jìn)行連接。 連接之后可以看到串口打印了連接事件。
同時手機(jī)也顯示該藍(lán)牙模塊連接成功。
源碼下載
https://download.csdn.net/download/qq_24312945/85049386
審核編輯:湯梓紅
-
藍(lán)牙
+關(guān)注
關(guān)注
114文章
5881瀏覽量
171361 -
BLE
+關(guān)注
關(guān)注
12文章
670瀏覽量
59623 -
stm32cubemx
+關(guān)注
關(guān)注
5文章
284瀏覽量
15059
發(fā)布評論請先 登錄
相關(guān)推薦
STM32WB55_NUCLEO開發(fā)(9)----接收手機(jī)數(shù)據(jù)點亮LED
![<b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開發(fā)</b>(9)----接收<b class='flag-5'>手機(jī)</b>數(shù)據(jù)點亮LED](https://file.elecfans.com/web2/M00/7A/6C/pYYBAGNt6D2Aa5lOAAe9ooFYepE929.jpg)
STM32WB55_NUCLEO開發(fā)(10)----接收手機(jī)特定數(shù)據(jù)點亮LED
![<b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開發(fā)</b>(10)----接收<b class='flag-5'>手機(jī)</b>特定數(shù)據(jù)點亮LED](https://file.elecfans.com/web2/M00/7A/6C/pYYBAGNt6D2Aa5lOAAe9ooFYepE929.jpg)
STM32WB55_NUCLEO開發(fā)(11)----發(fā)送數(shù)據(jù)到手機(jī)
![<b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開發(fā)</b>(11)----發(fā)送數(shù)據(jù)到<b class='flag-5'>手機(jī)</b>](https://file.elecfans.com/web2/M00/7A/6C/pYYBAGNt6D2Aa5lOAAe9ooFYepE929.jpg)
為什么無法使用Nucleo-WB-55板內(nèi)的ST-LINK調(diào)試STM32WB55VGY6TR?
為什么無法在STM32WB55 BLE服務(wù)器上發(fā)現(xiàn)GATT服務(wù)?
STM32CubeMX Nucleo F767ZI 教程(2)
![<b class='flag-5'>STM32CubeMX</b> <b class='flag-5'>Nucleo</b> F767ZI 教程(<b class='flag-5'>2</b>)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
stm32wb55 基于rtt的ble sample制作過程
![<b class='flag-5'>stm32wb55</b> 基于rtt的<b class='flag-5'>ble</b> sample制作過程](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32WB55_NUCLEO開發(fā)(3)----手機(jī)與STM32WB直接配對
![<b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開發(fā)</b>(3)----<b class='flag-5'>手機(jī)</b>與<b class='flag-5'>STM32WB</b>直接配對](https://file.elecfans.com/web2/M00/7A/6C/pYYBAGNt6D2Aa5lOAAe9ooFYepE929.jpg)
STM32WB55_NUCLEO開發(fā)(4)----手機(jī)與STM32WB通過密鑰配對
![<b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開發(fā)</b>(4)----<b class='flag-5'>手機(jī)</b>與<b class='flag-5'>STM32WB</b>通過密鑰配對](https://file.elecfans.com/web2/M00/7A/6C/pYYBAGNt6D2Aa5lOAAe9ooFYepE929.jpg)
STM32WB55_NUCLEO開發(fā)(5)----手機(jī)與STM32WB通過鍵入密鑰配對
![<b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開發(fā)</b>(5)----<b class='flag-5'>手機(jī)</b>與<b class='flag-5'>STM32WB</b>通過鍵入密鑰配對](https://file.elecfans.com/web2/M00/7A/6C/pYYBAGNt6D2Aa5lOAAe9ooFYepE929.jpg)
STM32WB55_NUCLEO開發(fā)(6)----手機(jī)與STM32WB通過配對后進(jìn)行數(shù)值比較
![<b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開發(fā)</b>(6)----<b class='flag-5'>手機(jī)</b>與<b class='flag-5'>STM32WB</b>通過配對后進(jìn)行數(shù)值比較](https://file.elecfans.com/web2/M00/7A/6C/pYYBAGNt6D2Aa5lOAAe9ooFYepE929.jpg)
STM32WB55_NUCLEO開發(fā)(7)----手機(jī)與STM32WB進(jìn)行綁定
![<b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開發(fā)</b>(7)----<b class='flag-5'>手機(jī)</b>與<b class='flag-5'>STM32WB</b>進(jìn)行綁定](https://file.elecfans.com/web2/M00/7A/6C/pYYBAGNt6D2Aa5lOAAe9ooFYepE929.jpg)
STM32WB55_NUCLEO開發(fā)(8)----授權(quán)
![<b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>開發(fā)</b>(8)----授權(quán)](https://file.elecfans.com/web2/M00/7A/6C/pYYBAGNt6D2Aa5lOAAe9ooFYepE929.jpg)
AN5816 如何使用STM32CubeMX構(gòu)建STM32 LPBAM應(yīng)用程序
![AN5816 如何使用<b class='flag-5'>STM32CubeMX</b>構(gòu)建<b class='flag-5'>STM32</b> LPBAM<b class='flag-5'>應(yīng)用程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32WB55RG開發(fā)(3)----生成 BLE 程序連接手機(jī)APP
![<b class='flag-5'>STM32WB55</b>RG<b class='flag-5'>開發(fā)</b>(3)----<b class='flag-5'>生成</b> <b class='flag-5'>BLE</b> <b class='flag-5'>程序</b><b class='flag-5'>連接手機(jī)</b><b class='flag-5'>APP</b>](https://file1.elecfans.com/web3/M00/02/75/wKgZPGdf2H-AEoxXAAYYCxH3dnU800.png)
評論