你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32WB55_NUCLEO开发----使用STM32CubeMX 生成的简单 BLE 应用程序连接手机APP

[复制链接]
STMCU小助手 发布时间:2022-4-29 23:26
概述
本篇文章主要介绍如何使用STM32CubeMX对生成STM32WB工程,并通过手机APP与其连接。

QDZ[0IK3DSEWOZNZI[Z~O7W.png

硬件准备
首先需要准备一个开发板,这里我准备的是NUCLEO-WB55RG 的开发板:

27)DEK3$K{8TCIOC1~C418T.png


选择芯片型号

SE((484}MHFKJJOJH]1~8AI.png

配置时钟源
HSE与LSE分别为外部高速时钟和低速时钟,在本文中使用外置的时钟源,故都选择Crystal/Ceramic Resonator选项,如下所示:

C61S7%QIKC4OA~[SOVBUT]K.png

配置时钟树

3QO11)27_64}OQA2O1YTMSC.png

查看开启STM32_WPAN条件
可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。

R]PC){]XVI1@VOD$E%3~9CN.png

配置HSEM

硬件信号量(HSEM)模块用于管理多个进程之间共享的访问权限和资源同步。

`GR_H(PV3(JM4(I}23W$D9O.png


开启HSEM如下。

~81758B(Y}BT{@00UPH13LW.png

配置IPCC
通信控制器(IPCC)模块的主要用于cpu之间的信号消息交换。

OE}(QUD){IG1{A943_4)B5T.png


开启如下所示。

@D[Q2`EA_5[PEYLTNM]UG.png

配置RTC

ZZ[MK[WBQ$WYMOJ}LKQD)35.png

启动RF

D8[W{{IUW10PZPQ3NJ0HH`0.png

配置USART

我们需要串口来打印数据,以方便我们查看信息。
查看原理图可以的是PB6和PB7与ST_Link链接在一起,且为串口打印端口。

R__5E9CQ$YL7`0BXYQ$S5.png
{2`9VI]AMM_E{2)J179~_2Q.png

开启DMA。

@V05R1$M`0R2RPE~KFKX{}0.png

开启中断。

}C$LHN3XB]XGX[}Y83[SXPL.png

开启STM32_WPAN
无线个人区域网(wireless personal area network)。
由于我们使用的是蓝牙,故勾选BLE。

EZ5[@)H4HRTHQ9S7K472{SA.png

配置自定义模板。

P2M{K{SN8_1BEESIXX1L]T8.png

设置串口1跟踪。

C~58`Z@A7SH4$Z~Gt`5)0.png

关闭MX_USART1_UART_Init函数的生成。

CJ4FFQD1@G631TL_GBOSXO0.png

启用串口1的tx的DMA。

Q7OH7@~4@7WAR}2KWHU@6TP.png

启动串口1调试跟踪。

{OVAPP`[ZXMI]YTH2J)BD(6.png

启用应用程序中的跟踪 。

KZ$GS1TO{XO(XSQ5FWX}MPM.png

设置蓝牙名称,名称为MY_BLE_DEV。

1_S@){KAM~9KFWEOQSGQ%]1.png

设置服务器配置。

JL3VR1@MOY0RD6@%2L(YALN.png

设置特征名称。

JQ]UVL[6L{[7VZA3~MZ}8HH.png

使能特征值读取。

00_YD$MJLJC_QCE[}Q69I8B.png

关闭GATT事件的返回。

}SUQ(1Y}CD16S27U]_P14.png

设置RTC和RF的时钟。

W@AHAQR$S8K`NHPEV3(@UMI.png

设置工程信息

O$XVZG8@~2ZBFJKT30({U6B.png

工程文件设置

GOT4JV[O9AG0`W6)(~U)8`V.png

Keil工程配置

3ED%)IW7F8GGF]${@5`7MBP.png

代码配置
在main.c中添加如下头文件。

  1. /* USER CODE BEGIN Includes */
  2. #include "stm32_seq.h"
  3. /* USER CODE END Includes */
复制代码

UTIL_SEQ_Run(UTIL_SEQ_DEFAULT)函数应该在应用程序的while循环中,启动任务调度。

  1.   /* USER CODE BEGIN WHILE */
  2.   while (1)
  3.   {
  4.     /* USER CODE END WHILE */
  5.     MX_APPE_Process();

  6.     /* USER CODE BEGIN 3 */
  7.                 UTIL_SEQ_Run(UTIL_SEQ_DEFAULT);
  8.   }
  9.   /* USER CODE END 3 */
  10. }
复制代码

在app_entry.c中添加初始化 APPD_Init()。

  1. void MX_APPE_Init( void )
  2. {
  3.   System_Init( );       /**< System initialization */

  4.   SystemPower_Config(); /**< Configure the system Power Mode */

  5.   HW_TS_Init(hw_ts_InitMode_Full, &hrtc); /**< Initialize the TimerServer */

  6. /* USER CODE BEGIN APPE_Init_1 */
  7.     APPD_Init();
  8. /* USER CODE END APPE_Init_1 */
  9.   appe_Tl_Init();        /* Initialize all transport layers */

  10.   /**
  11.    * From now, the application is waiting for the ready event ( VS_HCI_C2_Ready )
  12.    * received on the system channel before starting the Stack
  13.    * This system event is received with APPE_SysUserEvtRx()
  14.    */
  15. /* USER CODE BEGIN APPE_Init_2 */

  16. /* USER CODE END APPE_Init_2 */
  17.    return;
  18. }
复制代码

结果演示

下载完程序后,可以看到串口打印固件版本等信息。

JIY_AKA_28VQH3$B7YHN(YJ.png

打开ST BLE ToolBox软件(APP在群内有615061293),可以看到该蓝牙已经可以搜索到。

94cf6f868ba24090b6b74d0728af3808.png

点击connect进行连接。
连接之后可以看到串口打印了连接事件。

UH[94N@5%RGO)7ZWP~[B]%V.png

同时手机也显示该蓝牙模块连接成功。

a7c57c999c4d4c1ab1f6d179a96a76e8.png
收藏 评论0 发布时间:2022-4-29 23:26

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版