STM32WU55蓝牙开发学习笔记(2)-协议栈更新
STM32WU55蓝牙开发学习笔记(2)
前言
今天就稍微写一下wb55芯片协议栈的烧录吧,刚好手上新焊了一块板子。新买来的芯片都是空片,会内置一个比较老版本的FUS,并且没有协议栈,所以需要自己跟新一下FUS和协议栈才能正常使用无线功能。
stm32wb55的m0的核是专门运行协议栈的,协议栈是官方预置的几个bin文件,用户不能自己修改。可以运行的协议还挺多了,反正我就用BLE的协议栈。
我写的时候官方的固件跟新到v1.13.3(STM32CubeMX里面看),如果后面有出新的也大差不差吧。
准备
我用的是最简单的方法,需要准备准备硬件ST-LINK,和软件STM32CubeProgramming。
STM32WB的协议栈烧写的服务具体可以看官方的AN5185文档。简单的说就是芯片里有个FUS的固件,用来升级协议栈和升级自己。在操作的时候需要先用FUS把自己(FUS)升级到最新版本,再用最新的FUS烧需要的协议栈。
步骤
1. 下载STM32WB固件
↓STM32CubeMX这里可以查看固件的情况
↓选择需要的下载就行,一般都选择最新版
↓这里可以查看下载路径
↓按下入1所示的路径就可以找到协议栈和FUS文件的位置,如果使用的是STM32WB3x的芯片就在这个文件夹的上一层打开STM32WB3x的文件夹即可。下图2所示的网页文档很重要,后面会用到,可以先打开。
2. FUS更新
↓使用ST-LINK连接STM32WB芯片,如果可以检测到芯片就点击连接即可。
↓点击下图按钮进入升级界面
↓点击Start FUS按钮启动FUS,这里会将M4的内核的程序刷成启动FUS的程序,原来在芯片里的用户程序会被覆盖。
↓一定要等待成功后再进行后续操作
↓点击读取FUS就可以看到现在协议栈和FUS的信息。可以看到FUS的版本为v1.1.1.0,可以有些买来的空片内置的是v0.5.3的FUS,后续的更新操作会略有区别。由于新买来的空片是没有协议栈的,所以协议栈的版本是v0.0.0.0 。接下来需要先对FUS进行升级,
↓在这个位置选择需要烧入的协议栈或FUS,下面框住的两个是升级FUS。如果在上面查到的当前的FUS版本为v0.5.3则选择第二个(stm32wb5x_FUS_fw_for_fus_0_5_3),如果现在的FUS版本为其他版本则选择第一个(stm32wb5x_FUS_fw)。
↓然后打开上一节提到的很重要的网页文档。
首先确认最上面的版本号和下载的固件版本号一样。下面的两张表格代表需要烧入的协议栈和FUS所对应的烧入位置,最后一行为对应的版本号。可以看到我们要烧入的FUS版本号为v1.2.0,刚刚搜索出来的版本号为v1.1,不是最新版本,所以需要更新。
在下面的表格中找到刚刚需要烧写的FUS,找对对应芯片对应的烧入位置。我所使用的芯片为STM32WB55CGU6,对应的就是STM32WB5XXG,所以为0x080EC000。这里的位置一定要对应自己的固件版本号和芯片,演示的操作只是做一个演示。
↓在此处输入刚刚搜索到的位置,然后点击UPGrade。务必确认这个烧入的位置,据说位置错误可能会让芯片暴毙,我也没试过。点击更新按钮后等待,会跳出两个弹窗,分别是删除成功和更新成功,务必等更新成功后再进行后续操作。
↓这个时候再读取FUS信息可以看到FUS版本已经变成V1.2.0.0了
3. 烧协议栈
↓同样是再这个位置选择需要烧入的协议栈 ,一般选择stm32wb5x_BLE_Stack_full_fw,就是完整的BLE协议栈,(stm32wb5x_BLE_Stack_light_fw好像是阉割版BLE协议栈,储存空间比较小的芯片可以选择这个)
在刚刚的文档里找到需要烧入的位置,并在软件中输入对应位置。然后再点击Firmware Update按钮,进行更新协议栈。
↓同样会出现两个弹窗,等成功后再进行后续操作
↓这个时候重现启动FUS,读取信息可以看到协议栈的版本可以是v1.13.3.2了
↓然后请务必点击这个按钮,开始协议栈!!!!!!!!!!!!
我最开始就是没点这个按钮导致手头上自己的板子怎么搞都搞不好,搞了几天才发现是这个问题,f–k。
到这里协议栈的内容就搞好了。接下来就可以愉快的正常写代码了。协议栈更新还可以使用控制台命令的方式,但那种方式我也没怎么搞明白,各位通信可以参考其他的资料。如果上面的内容有写的不对的欢迎指正。
STM32WU55蓝牙开发学习笔记(2)-协议栈更新相关推荐
- STM32WU55蓝牙开发学习笔记(1)
STM32WU55蓝牙开发学习笔记(1) 前言 我在本科的时候主要是做机械结构的,参加过RM和RC,现在研究生在一个做传感器的课题组,直接转行做电控了,G.研究生阶段的第一个项目是,多通道采集肌电信号 ...
- Go语言开发学习笔记(持续更新中)
Go语言开发学习笔记(持续更新中) 仅供自我学习 更好的文档请选择下方 https://studygolang.com/pkgdoc https://www.topgoer.com/go%E5%9F% ...
- ① ESP8266 开发学习笔记_By_GYC 【更新 ets_printf 函数 使ESP_IDF 能够支持浮点数打印】
① ESP8266 开发学习笔记_By_GYC [更新 ets_printf 函数 使ESP_IDF 能够支持浮点数打印] 在我们日常的开发过程中,经常使用到的一个功能就是串口打印功能.在ESP826 ...
- 幻樱の安卓开发学习笔记(持续更新)
安卓开发手册Java . 前言 . 本篇博客是我在开发过程中遇到的一些问题,我将这些问题记录了下来,以防踩重复的坑,希望对需要学习或者来看我踩坑的人有所帮助. . . . . 零.一些常用的依赖 1. ...
- 低功耗蓝牙cc2541学习笔记之协议栈工作原理
- Java开发面试高频考点学习笔记(每日更新)
Java开发面试高频考点学习笔记(每日更新) 1.深拷贝和浅拷贝 2.接口和抽象类的区别 3.java的内存是怎么分配的 4.java中的泛型是什么?类型擦除是什么? 5.Java中的反射是什么 6. ...
- Redis运维和开发学习笔记(5) 主从复制和sentinel哨兵模式
Redis运维和开发学习笔记(5) 主从复制和sentinel哨兵模式 主从复制 将主节点的数据改变同步给从节点 作用 备份数据 读写分离 存在的问题: 手动干预切主等操作 主节点的写能力受到单机限制 ...
- Redis运维和开发学习笔记(2) redis持久化
Redis运维和开发学习笔记(2) redis持久化 文章目录 Redis运维和开发学习笔记(2) redis持久化 持久化 持久化方式一:RDB 触发~~的三种~~方式 1. save命令 2. b ...
- 微服务基础知识点学习笔记(持续更新)
微服务基础知识点学习笔记(持续更新) Conrtoller层 整体包括:HTTP协议,JavaWeb三大组件(filter.servlet.listener).SpringMVC(SpringMVC的 ...
最新文章
- 使用Spring操作Redis的key-value数据
- 进阶第四课 Python模块之os
- pandas用read_csv时编码问题解决
- zabbix 安装使用
- 数据库常用语句(日常填充)
- qtcreator摄像头显示时间_屏下摄像头手机量产了,然后呢?
- 线上报名 | 高性能深度学习推理引擎 TensorRT 实战编程讲解
- 学习记录-Linux内核模块查看命令
- [51nod1847][算法马拉松23(飞越愚人节)F]奇怪的数学题
- 报错:selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This versio
- 建立神经网络来预测贷款风险
- ORACLE START WITH 语句的树级结构例子
- Software-Defined Networking (SDN) Definition-软件定义网络
- 开发MT4指标和EA(自动交易系统)
- PMBOK第六版学习笔记
- 联想笔记本BIOS设置中文详解
- html强制使用雅黑字体,网页中使用微软雅黑字体(css调用微软雅黑)
- Portapack应用开发教程(十三)控制遥控小车OOK
- 网卡基本配置2(主机名修改、网卡绑定)
- 计算机网络面试题总结之一