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)-协议栈更新相关推荐

  1. STM32WU55蓝牙开发学习笔记(1)

    STM32WU55蓝牙开发学习笔记(1) 前言 我在本科的时候主要是做机械结构的,参加过RM和RC,现在研究生在一个做传感器的课题组,直接转行做电控了,G.研究生阶段的第一个项目是,多通道采集肌电信号 ...

  2. Go语言开发学习笔记(持续更新中)

    Go语言开发学习笔记(持续更新中) 仅供自我学习 更好的文档请选择下方 https://studygolang.com/pkgdoc https://www.topgoer.com/go%E5%9F% ...

  3. ① ESP8266 开发学习笔记_By_GYC 【更新 ets_printf 函数 使ESP_IDF 能够支持浮点数打印】

    ① ESP8266 开发学习笔记_By_GYC [更新 ets_printf 函数 使ESP_IDF 能够支持浮点数打印] 在我们日常的开发过程中,经常使用到的一个功能就是串口打印功能.在ESP826 ...

  4. 幻樱の安卓开发学习笔记(持续更新)

    安卓开发手册Java . 前言 . 本篇博客是我在开发过程中遇到的一些问题,我将这些问题记录了下来,以防踩重复的坑,希望对需要学习或者来看我踩坑的人有所帮助. . . . . 零.一些常用的依赖 1. ...

  5. 低功耗蓝牙cc2541学习笔记之协议栈工作原理

  6. Java开发面试高频考点学习笔记(每日更新)

    Java开发面试高频考点学习笔记(每日更新) 1.深拷贝和浅拷贝 2.接口和抽象类的区别 3.java的内存是怎么分配的 4.java中的泛型是什么?类型擦除是什么? 5.Java中的反射是什么 6. ...

  7. Redis运维和开发学习笔记(5) 主从复制和sentinel哨兵模式

    Redis运维和开发学习笔记(5) 主从复制和sentinel哨兵模式 主从复制 将主节点的数据改变同步给从节点 作用 备份数据 读写分离 存在的问题: 手动干预切主等操作 主节点的写能力受到单机限制 ...

  8. Redis运维和开发学习笔记(2) redis持久化

    Redis运维和开发学习笔记(2) redis持久化 文章目录 Redis运维和开发学习笔记(2) redis持久化 持久化 持久化方式一:RDB 触发~~的三种~~方式 1. save命令 2. b ...

  9. 微服务基础知识点学习笔记(持续更新)

    微服务基础知识点学习笔记(持续更新) Conrtoller层 整体包括:HTTP协议,JavaWeb三大组件(filter.servlet.listener).SpringMVC(SpringMVC的 ...

最新文章

  1. 使用Spring操作Redis的key-value数据
  2. 进阶第四课 Python模块之os
  3. pandas用read_csv时编码问题解决
  4. zabbix 安装使用
  5. 数据库常用语句(日常填充)
  6. qtcreator摄像头显示时间_屏下摄像头手机量产了,然后呢?
  7. 线上报名 | 高性能深度学习推理引擎 TensorRT 实战编程讲解
  8. 学习记录-Linux内核模块查看命令
  9. [51nod1847][算法马拉松23(飞越愚人节)F]奇怪的数学题
  10. 报错:selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This versio
  11. 建立神经网络来预测贷款风险
  12. ORACLE START WITH 语句的树级结构例子
  13. Software-Defined Networking (SDN) Definition-软件定义网络
  14. 开发MT4指标和EA(自动交易系统)
  15. PMBOK第六版学习笔记
  16. 联想笔记本BIOS设置中文详解
  17. html强制使用雅黑字体,网页中使用微软雅黑字体(css调用微软雅黑)
  18. Portapack应用开发教程(十三)控制遥控小车OOK
  19. 网卡基本配置2(主机名修改、网卡绑定)
  20. 计算机网络面试题总结之一

热门文章

  1. 调查电视节目受欢迎程度(代码及详解)
  2. Linux在中国如何走出困境?
  3. 国内外十大CRM管理系统盘点,2023年哪个品牌值得用?
  4. 选择短信平台加快提升医院部门信息化管理
  5. 起床困难综合症(0x01位运算)
  6. 给出广义随机petri网在可靠性方面应用的英文学术论文
  7. java 提高篇_【Java入门提高篇】Day16 Java异常处理(上)
  8. Vue框架-01-了解并使用Vue
  9. windows下命令行方式激活venv虚拟环境
  10. 去图片水印软件有哪些?安利这几个实用的工具给你们