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

描述

概述

本篇文章主要介绍如何使用STM32CubeMX对生成STM32WB工程,并通过手机APP与其连接。 stm32cubemx

硬件准备

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

源码下载

https://download.csdn.net/download/qq_24312945/85049386

选择芯片型号

stm32cubemx

配置时钟源

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

配置时钟树

stm32cubemx

查看开启STM32_WPAN条件

可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。 stm32cubemx

配置HSEM

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

stm32cubemx 资料下载链接:https://www.stmcu.jp/wp/wp-content/uploads/files/presentation-ja/STM32WB/17_STM32WB-System-Hardware-Semaphore-(HSEM)_J.pdf 开启HSEM如下。 stm32cubemx

配置IPCC

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

stm32cubemx 资料下载链接:https://www.st.com/content/ccc/resource/training/technical/product_training/group0/d3/17/dc/8a/bf/ef/4f/10/STM32WB-System-Inter-Processor-communication-controller-IPCC/files/STM32WB-System-Inter-Processor-communication-controller-IPCC.pdf/jcr:content/translations/en.STM32WB-System-Inter-Processor-communication-controller-IPCC.pdf 开启如下所示。

stm32cubemx

配置RTC

stm32cubemx

启动RF

stm32cubemx

配置USART

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

开启STM32_WPAN

无线个人区域网(wireless personal area network)。 由于我们使用的是蓝牙,故勾选BLE。 stm32cubemx 配置自定义模板。 stm32cubemx

设置串口1跟踪。 stm32cubemx 关闭MX_USART1_UART_Init函数的生成。 stm32cubemx

启用串口1的tx的DMA。 stm32cubemx 启动串口1调试跟踪。 stm32cubemx 启用应用程序中的跟踪 。 stm32cubemx 设置蓝牙名称,名称为MY_BLE_DEV。 stm32cubemx 设置服务器配置。 stm32cubemx 设置特征名称。 stm32cubemx 使能特征值读取。 stm32cubemx 关闭GATT事件的返回。 stm32cubemx 设置RTC和RF的时钟。 stm32cubemx

设置工程信息

stm32cubemx

工程文件设置

stm32cubemx

Keil工程配置

stm32cubemx

代码配置

在main.c中添加如下头文件。

/* USER CODE BEGIN Includes */
#include "stm32_seq.h"
/* USER CODE END Includes */

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

/* 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;
}

结果演示

下载完程序后,可以看到串口打印固件版本等信息。 stm32cubemx 打开ST BLE ToolBox软件(APP在群内有615061293),可以看到该蓝牙已经可以搜索到。 stm32cubemx 点击connect进行连接。 连接之后可以看到串口打印了连接事件。 stm32cubemx 同时手机也显示该蓝牙模块连接成功。 stm32cubemx

源码下载

https://download.csdn.net/download/qq_24312945/85049386

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
记帖MCU 2022-11-18
0 回复 举报
交流ⓆU_N:6_15061293 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分