0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

嵌入式单片机MCU开发 来源:嵌入式单片机MCU开发 作者:嵌入式单片机MCU开 2022-11-18 09:55 次阅读

概述

本篇文章主要介绍如何使用STM32CubeMX对生成STM32WB工程,并通过手机APP与其连接。 在这里插入图片描述

硬件准备

首先需要准备一个开发板,这里我准备的是NUCLEO-WB55RG 的开发板: 在这里插入图片描述

源码下载

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

选择芯片型号

在这里插入图片描述

配置时钟

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

配置时钟树

在这里插入图片描述

查看开启STM32_WPAN条件

可以看到,需要开启RF、RTC、RCC、IPCC、HSEM。 在这里插入图片描述

配置HSEM

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

在这里插入图片描述 资料下载链接:https://www.stmcu.jp/wp/wp-content/uploads/files/presentation-ja/STM32WB/17_STM32WB-System-Hardware-Semaphore-(HSEM)_J.pdf 开启HSEM如下。 在这里插入图片描述

配置IPCC

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

在这里插入图片描述 资料下载链接: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 开启如下所示。

在这里插入图片描述

配置RTC

在这里插入图片描述

启动RF

在这里插入图片描述

配置USART

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

开启STM32_WPAN

无线个人区域网(wireless personal area network)。 由于我们使用的是蓝牙,故勾选BLE。 在这里插入图片描述 配置自定义模板。 在这里插入图片描述

设置串口1跟踪。 在这里插入图片描述 关闭MX_USART1_UART_Init函数的生成。 在这里插入图片描述

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

设置工程信息

在这里插入图片描述

工程文件设置

在这里插入图片描述

Keil工程配置

在这里插入图片描述

代码配置

在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;
}

结果演示

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

源码下载

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

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 蓝牙
    +关注

    关注

    112

    文章

    5441

    浏览量

    165923
  • BLE
    BLE
    +关注

    关注

    12

    文章

    610

    浏览量

    58891
  • stm32cubemx
    +关注

    关注

    5

    文章

    260

    浏览量

    14460
收藏 人收藏

    评论

    相关推荐

    STM32WB55_NUCLEO开发(9)----接收手机数据点亮LED

    概述 本篇文章主要介绍如何使用STM32CubeMX生成STM32WB工程,并通过与STM32WB配对,向该特征写入一个任意字节,绿色LED会切换。 最近在弄ST和瑞萨RA的课程,需
    的头像 发表于 08-21 15:16 640次阅读
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>开发</b>(9)----接收<b class='flag-5'>手机</b>数据点亮LED

    STM32WB55_NUCLEO开发(10)----接收手机特定数据点亮LED

    STM32WB55_NUCLEO开发(10)----接收手机特定数据点亮LED
    的头像 发表于 08-21 15:19 566次阅读
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>开发</b>(10)----接收<b class='flag-5'>手机</b>特定数据点亮LED

    STM32WB55_NUCLEO开发(11)----发送数据到手机

    STM32WB55_NUCLEO开发(11)----发送数据到手机
    的头像 发表于 08-21 15:22 703次阅读
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>开发</b>(11)----发送数据到<b class='flag-5'>手机</b>

    为什么无法使用Nucleo-WB-55板内的ST-LINK调试STM32WB55VGY6TR?

    ,来自 Nucleo-WB55 板的 3.3 V 引脚。为了开始编程,我使用了STM32cubeMX创建的裸程序,构建后没有任何变化。启动微控制器时我错过了什么吗?
    发表于 12-05 06:28

    STM32WB55如何检测/调试P-NUCLEO-WB55.NucleoBLE_p2pServer中的read_event示例代码

    先生,的我正在使用 STM32WB55 开发项目并从 STM32Cube_FW_WB_V1.14.0\Projects\P-NUCLEO-WB55.Nucleo\Application
    发表于 12-07 06:30

    为什么无法在STM32WB55 BLE服务器上发现GATT服务?

    我正在尝试使用 STM32WB55 Nucleo Pack 开发 BLE 应用程序。我将 cubeMX
    发表于 01-13 08:31

    STM32CubeMX Nucleo F767ZI 教程(2)

    STM32CubeMX Nucleo F767ZI 教程(2)STM32CubeMX Nucleo F767ZI 教程(1)STM32CubeMX
    发表于 12-06 10:06 20次下载
    <b class='flag-5'>STM32CubeMX</b> <b class='flag-5'>Nucleo</b> F767ZI 教程(2)

    stm32wb55 基于rtt的ble sample制作过程

    stm32wb55 基于rtt的ble sample制作过程准备活动硬件stm32wb55 nucleo开发
    发表于 12-20 19:39 12次下载
    <b class='flag-5'>stm32wb55</b> 基于rtt的<b class='flag-5'>ble</b> sample制作过程

    STM32WB55_NUCLEO开发(3)----手机STM32WB直接配对

    本篇文章主要介绍如何使用STM32CubeMX生成STM32WB工程,并通过手机APP与其配对。
    的头像 发表于 11-18 09:57 870次阅读
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>开发</b>(3)----<b class='flag-5'>手机</b>与<b class='flag-5'>STM32WB</b>直接配对

    STM32WB55_NUCLEO开发(4)----手机STM32WB通过密钥配对

    本篇文章主要介绍如何使用STM32CubeMX生成STM32WB工程,并通过手机APP与其配对。
    的头像 发表于 11-18 10:00 818次阅读
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>开发</b>(4)----<b class='flag-5'>手机</b>与<b class='flag-5'>STM32WB</b>通过密钥配对

    STM32WB55_NUCLEO开发(5)----手机STM32WB通过键入密钥配对

    本篇文章主要介绍如何使用STM32CubeMX生成STM32WB工程,并通过与STM32WB配对获取密钥值,然后通过键盘输入密钥进行配对。
    的头像 发表于 11-18 10:02 920次阅读
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>开发</b>(5)----<b class='flag-5'>手机</b>与<b class='flag-5'>STM32WB</b>通过键入密钥配对

    STM32WB55_NUCLEO开发(6)----手机STM32WB通过配对后进行数值比较

    本篇文章主要介绍如何使用STM32CubeMX生成STM32WB工程,并通过与STM32WB配对,查看STM32WB
    的头像 发表于 11-18 10:05 794次阅读
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>开发</b>(6)----<b class='flag-5'>手机</b>与<b class='flag-5'>STM32WB</b>通过配对后进行数值比较

    STM32WB55_NUCLEO开发(7)----手机STM32WB进行绑定

    本篇文章主要介绍如何使用STM32CubeMX生成STM32WB工程,并通过与STM32WB配对,将其绑定。
    的头像 发表于 11-18 10:08 917次阅读
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>开发</b>(7)----<b class='flag-5'>手机</b>与<b class='flag-5'>STM32WB</b>进行绑定

    STM32WB55_NUCLEO开发(8)----授权

    本篇文章主要介绍如何使用STM32CubeMX生成STM32WB工程,并通过与STM32WB配对,应用程序对客户端读取或者写入特征值进行授
    的头像 发表于 11-18 10:09 847次阅读
    <b class='flag-5'>STM32WB55_NUCLEO</b><b class='flag-5'>开发</b>(8)----授权

    AN5816 如何使用STM32CubeMX构建STM32 LPBAM应用程序

    AN5816 如何使用STM32CubeMX构建STM32 LPBAM应用程序
    发表于 11-21 17:07 0次下载
    AN5816 如何使用<b class='flag-5'>STM32CubeMX</b>构建<b class='flag-5'>STM32</b> LPBAM<b class='flag-5'>应用程序</b>