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

  • 概述
  • 硬件准备
  • 视频教学
  • 源码下载
  • 选择芯片型号
  • 配置时钟源
  • 配置时钟树
  • 查看开启STM32_WPAN条件
  • 配置HSEM
  • 配置IPCC
  • 配置RTC
  • 启动RF
  • 配置USART
  • 开启STM32_WPAN
  • 设置工程信息
  • 工程文件设置
  • Keil工程配置
  • 代码配置
  • 结果演示
  • 源码下载
  • 最后

概述

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

硬件准备

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

视频教学

听不到声音的请点击跳转进行观看。
https://www.bilibili.com/video/BV17Z4y1z7ng/

STM32WB55

源码下载

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

最后

以上的代码会在Q群里分享。QQ群:615061293。
或者关注微信公众号『记帖』,持续更新文章和学习资料,可加作者的微信交流学习!

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

  1. 傻瓜式软件开发工具推荐!无需写代码,拼图式极速制作手机APP

    因为从事互联网领域的工作,所以总会收到很多朋友的询问,表示想建立一个App,或创业,或是增长线上渠道,或者仅作为个人的一个小工具,小平台,但是又苦于不懂软件开发技术,咨询专业的外包公司,价格都太高,不 ...

  2. 人脸识别手机端APK分享 | 极速体验人脸识别功能 创建一个简单的人脸识别手机APP程序

    1.前言 虹软公司提供免费离线人脸识别,对于开发者提供了比较友好.完整的可配置demo.但是如需直接体验功能,还是要花一点时间去完成项目编译.配置等一系列工作,对于初学者.不怎么熟悉整个项目的人来说可 ...

  3. ESP8266 Nodemcu 开发板 + Blinker 电脑远程开机支持小爱同学和手机APP

    文章目录 前言 一.物联网是什么? 二.效果展示 1.使用的硬件 2.接线展示 三.TMP模块供电,状态检测 四 代码解析 1. 指定PIN,定义一些按钮 2.这是小爱同学的代码,BLinker还支持 ...

  4. vue qrcodejs2生成二维码实现手机APP扫码进行web网页登录

    在vue中使用 qrcodejs2 1.安装 npm install  qrcodejs2 --save 2.引入 import QRCode from "qrcodejs2" 3 ...

  5. 开发html5 2d 赛车游戏以及打包发布为手机APP 第一话 工欲善其事

    按照昔日做给上头拿去找汽车商卖钱的一个赛车游戏APP的经验来说明这个例子(不过当然只说有关游戏的部分) 思路:一幅赛道画面,赛道上面有一辆主角车,可以由玩家用手指拖拽去控制赛车的移动 设置计时器,画面 ...

  6. 手机app开发用的是什么语言?有哪些优势?

    目前因为移动互联网的火爆,人人都想开发一款属于自己的app,所以咨询app开发的朋友很多.,现在大家都知道商城app软件的盈利能力非常强,一旦流量多了,那么可以盈利的方式就比较多,而且对于拥有自主产品 ...

  7. 手机app开发用的是什么语言?甲由科技细数其优势

    目前因为移动互联网的火爆,人人都想开发一款属于自己的app,所以咨询app开发的朋友很多.,现在大家都知道商城app软件的盈利能力非常强,一旦流量多了,那么可以盈利的方式就比较多,而且对于拥有自主产品 ...

  8. 手机app定制开发流程图

    随着移动互联网的发展,智能手机技术的逐渐完善,引起了app开发的狂潮,所以很多人都希望能开发一个属于自己的app,那么应该如何开发呢,很多人都会咨询手机app定制开发公司品向科技,app定制开发流程是 ...

  9. STM32开发利器:STM32CubeMX

    这篇博客篇幅不长,主要是为大家介绍ST公司推出的STM32CubeMX开发工具,当成下周更新STM32 10个项目工程的预备篇,同时FPGA FPGA 20个例程篇:8.SD卡任意地址的读写,代码部分 ...

最新文章

  1. Spark(四) -- Spark工作机制
  2. pycuda write complex numbers — errors:class “cuComplex” has no member “i”
  3. android lint 空指针,HardwareRenderer中的NullPointerException
  4. PHP常用的正则表达式(有些需要调整)
  5. cas客户端登陆状态不同步_Java并发——同步组件
  6. android db 代码查看工具,Android 真机调试查看db数据库文件
  7. 【8】同步vscode配置和插件【导入导出】、再也不用担心换电脑重新安装插件了
  8. 软件系统服务器端要求用千兆宽带,【硬核分享】升级千兆网络而速度却达不到?这些操作你做对了吗?...
  9. 项目上线流程-实时Flink
  10. mysql orm_从MySQL到ORM(二):MySQL基础
  11. ABeam Insight | 女性科技系列(1):女性科技(FemTech)简述
  12. VS Code中打开工作区设置josn文件
  13. 弘辽科技:拼多多批发单算销量吗?拼多多刚开店怎么有销量
  14. 四、Python数据挖掘(Pandas库)
  15. 常用m3u8,rtsp,rtmp,flv,mp4直播流在线测试地址
  16. 鸿蒙系统入门开发(入门篇)
  17. 计算机应用基础提问话题,10个开启新话题的过渡方法.docx-汇文网
  18. 解析机智云MCU源码
  19. 自我鉴定200字大专生计算机专业,大专毕业自我鉴定200字
  20. 数据结构与算法JC班-左程云第一节课笔记(认识复杂度、对数器、二分法与异或运算)

热门文章

  1. 闲话复数(1) | 不现实的虚数 i 为什么虚?它长成什么样?
  2. IEEE Communications Letters - cover letter
  3. 矩阵论 施密特正交化的几何解释_最直观图解法
  4. 散热性能测试软件,性能测试及散热表现
  5. 7-7 社交集群 (30 分) (集合数组的方法)
  6. 【WebRTC】回声抵消(aec、aecm)算法简介
  7. 奥运14日看点:杨威金牌最稳 领衔7大夺金点
  8. npm和package是什么
  9. vm眼影真的好用吗_VM大理石眼影盘,是颜值党的真爱~
  10. 外贸人如何从SiteGround购买建站外贸主机