STM32WB55_NUCLEO开发(2)----使用STM32CubeMX 生成的简单 BLE 应用程序连接手机APP
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相关推荐
- 傻瓜式软件开发工具推荐!无需写代码,拼图式极速制作手机APP
因为从事互联网领域的工作,所以总会收到很多朋友的询问,表示想建立一个App,或创业,或是增长线上渠道,或者仅作为个人的一个小工具,小平台,但是又苦于不懂软件开发技术,咨询专业的外包公司,价格都太高,不 ...
- 人脸识别手机端APK分享 | 极速体验人脸识别功能 创建一个简单的人脸识别手机APP程序
1.前言 虹软公司提供免费离线人脸识别,对于开发者提供了比较友好.完整的可配置demo.但是如需直接体验功能,还是要花一点时间去完成项目编译.配置等一系列工作,对于初学者.不怎么熟悉整个项目的人来说可 ...
- ESP8266 Nodemcu 开发板 + Blinker 电脑远程开机支持小爱同学和手机APP
文章目录 前言 一.物联网是什么? 二.效果展示 1.使用的硬件 2.接线展示 三.TMP模块供电,状态检测 四 代码解析 1. 指定PIN,定义一些按钮 2.这是小爱同学的代码,BLinker还支持 ...
- vue qrcodejs2生成二维码实现手机APP扫码进行web网页登录
在vue中使用 qrcodejs2 1.安装 npm install qrcodejs2 --save 2.引入 import QRCode from "qrcodejs2" 3 ...
- 开发html5 2d 赛车游戏以及打包发布为手机APP 第一话 工欲善其事
按照昔日做给上头拿去找汽车商卖钱的一个赛车游戏APP的经验来说明这个例子(不过当然只说有关游戏的部分) 思路:一幅赛道画面,赛道上面有一辆主角车,可以由玩家用手指拖拽去控制赛车的移动 设置计时器,画面 ...
- 手机app开发用的是什么语言?有哪些优势?
目前因为移动互联网的火爆,人人都想开发一款属于自己的app,所以咨询app开发的朋友很多.,现在大家都知道商城app软件的盈利能力非常强,一旦流量多了,那么可以盈利的方式就比较多,而且对于拥有自主产品 ...
- 手机app开发用的是什么语言?甲由科技细数其优势
目前因为移动互联网的火爆,人人都想开发一款属于自己的app,所以咨询app开发的朋友很多.,现在大家都知道商城app软件的盈利能力非常强,一旦流量多了,那么可以盈利的方式就比较多,而且对于拥有自主产品 ...
- 手机app定制开发流程图
随着移动互联网的发展,智能手机技术的逐渐完善,引起了app开发的狂潮,所以很多人都希望能开发一个属于自己的app,那么应该如何开发呢,很多人都会咨询手机app定制开发公司品向科技,app定制开发流程是 ...
- STM32开发利器:STM32CubeMX
这篇博客篇幅不长,主要是为大家介绍ST公司推出的STM32CubeMX开发工具,当成下周更新STM32 10个项目工程的预备篇,同时FPGA FPGA 20个例程篇:8.SD卡任意地址的读写,代码部分 ...
最新文章
- Spark(四) -- Spark工作机制
- pycuda write complex numbers — errors:class “cuComplex” has no member “i”
- android lint 空指针,HardwareRenderer中的NullPointerException
- PHP常用的正则表达式(有些需要调整)
- cas客户端登陆状态不同步_Java并发——同步组件
- android db 代码查看工具,Android 真机调试查看db数据库文件
- 【8】同步vscode配置和插件【导入导出】、再也不用担心换电脑重新安装插件了
- 软件系统服务器端要求用千兆宽带,【硬核分享】升级千兆网络而速度却达不到?这些操作你做对了吗?...
- 项目上线流程-实时Flink
- mysql orm_从MySQL到ORM(二):MySQL基础
- ABeam Insight | 女性科技系列(1):女性科技(FemTech)简述
- VS Code中打开工作区设置josn文件
- 弘辽科技:拼多多批发单算销量吗?拼多多刚开店怎么有销量
- 四、Python数据挖掘(Pandas库)
- 常用m3u8,rtsp,rtmp,flv,mp4直播流在线测试地址
- 鸿蒙系统入门开发(入门篇)
- 计算机应用基础提问话题,10个开启新话题的过渡方法.docx-汇文网
- 解析机智云MCU源码
- 自我鉴定200字大专生计算机专业,大专毕业自我鉴定200字
- 数据结构与算法JC班-左程云第一节课笔记(认识复杂度、对数器、二分法与异或运算)
热门文章
- 闲话复数(1) | 不现实的虚数 i 为什么虚?它长成什么样?
- IEEE Communications Letters - cover letter
- 矩阵论 施密特正交化的几何解释_最直观图解法
- 散热性能测试软件,性能测试及散热表现
- 7-7 社交集群 (30 分) (集合数组的方法)
- 【WebRTC】回声抵消(aec、aecm)算法简介
- 奥运14日看点:杨威金牌最稳 领衔7大夺金点
- npm和package是什么
- vm眼影真的好用吗_VM大理石眼影盘,是颜值党的真爱~
- 外贸人如何从SiteGround购买建站外贸主机