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

STM32WB55_NUCLEO开发(2)----使用STM32CubeMX 生成的简单 BLE 应用程序连接手机APP

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

740ac5b313f942cd98f7036b872c956b.png

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

da9ef49d616d44a79d672bce4a5ef5f4.png


选择芯片型号

ba817c41780a41a5bd04a86b9a3542fb.png

配置时钟源

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

429da0ed22ec4d139f36b969318dc8ea.png

配置时钟树

33314326656b4d7ab8607c589864a1ba.png

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

4f9485d1e97f4dcd9d6e5acef8144909.png

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

150eeaf2b2ae4054b757e5f92cc9e2b6.png

38c3df0c51f142478d32b0c78ea620cb.png

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

306472df54f440ccb48d8429d6bad4c0.png


开启如下所示。

161c0a5b79f14c23aa00ccdc6b680b89.png

配置RTC

79f31f56919544c8b6d76ad2b8af77a3.png

启动RF

a62289d92db24ac0bbfd6c8fe7293aab.png

配置USART

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

1a580a9865f5414e89c991e149d55a60.png
953b7e5b6d2c40fca6281065f2c021ec.png

开启DMA。

76c810e94e9d418784592421a915e7ee.png

开启中断。

f7285eea73e141288d6ef74ccdcb7db7.png

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

9feff51ad740402198936d7fa3b5f834.png

配置自定义模板。

9cfd7384c5f741889e2a64f12a722e2e.png

设置串口1跟踪。

154d82952029465f923e090d8ac7423a.png

关闭MX_USART1_UART_Init函数的生成。

84af5c7a65fd4c3d81fd38457259d9a8.png

启用串口1的tx的DMA。

39b41747973b422f9f1a677abe2c1e50.png

启动串口1调试跟踪。

b7988d3f38cb458886e321b0c3857f68.png

启用应用程序中的跟踪 。

c101a016bc964163838aa50dc761cb72.png

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

1fc6a400a3f04ce689aa5f90872903f3.png

设置服务器配置。

67bdf41900e046b1bd878299ef6e8205.png

设置特征名称。

58d112d68ca24181b7237f74b2fd9068.png

使能特征值读取。

3574a02760d0464a8b0bbf70d7145eae.png

关闭GATT事件的返回。

eab886965e304993b9d63d09404b6f4e.png

设置RTC和RF的时钟。

513b544fe9834c34b5fa616490fb367d.png

设置工程信息

3337247621d343cc95ac40c05a645c31.png

工程文件设置

28196cc1ebde4db685a6e297a1442e5c.png

Keil工程配置

a400e4b5bd674fd895951312fd0c2e8d.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. }
复制代码

结果演示

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

e402c8c2ffad4d44a5578865154fbccb.png

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

94cf6f868ba24090b6b74d0728af3808.png

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

d30f7ce43c804660915df8608940f14d.png

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

a7c57c999c4d4c1ab1f6d179a96a76e8.png

源码下载



收藏 评论0 发布时间:2022-8-19 16:04

举报

0个回答

所属标签

相似分享

官网相关资源

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