【STM32备忘录】【STM32WB系列的BLE低功耗蓝牙】一、测试广播配置搜不到信号的注意事项
一、预备知识:
- WB系列是双核单片机,用户写M4,无线协议栈使用M0
- 新买到手的单片机,需要自己刷入使用的无线协议栈
- 刷入无线协议栈的途径是通过一个叫FUS的东东,类似于bootloader,这个FUS新买的芯片通常已经刷好,但版本不一定是最新的(如果没有需要自己刷入)
- 刷入FUS和无线协议栈需要使用stm32CubeProgrammer和stlink(这种方式最方便)
二、准备工具:
(其他可行工具亦可)
- stm32CubeMX
- stm32CubeProgrammer
- stlink一个
- 一个手机端/PC端的BLE调试助手,通常应用商店就有
三、FUS和无线协议栈更新流程
不要被名字吓到了,,并不复杂,这里只写下几个注意事项,,,这篇帖子非常详细:https://shequ.stmicroelectronics.cn/forum.php?mod=viewthread&tid=632638&extra=
注意事项
:
- 无线协议栈的刷入地址要正确,不同型号单片机不一样
- 无线协议的刷入地址可以从Cube软件包内的SDK文档中查找,自己的是哪个系列就看哪个,一个参考路径(在你第一次使用cubeMX新建工程时软件包会自动下好):C:\Users\Administrator\STM32Cube\Repository\STM32Cube_FW_WB_V1.17.3\Projects\STM32WB_Copro_Wireless_Binaries
-特别注意
,stm32CubeProgrammer刷入协议栈时即使勾选了校验,即使刷入后可以读取到FUS信息,并且信息没有错误,依然不保证协议栈已经正确刷入。。。异常说明和解决方式见下文第五章。。。
四、广播例程测试
cubeMX配置,开启STM32—WPAN前必须开启的部分:HSEM、IPCC及中断、RCC-HSE、RTC及中断、RF:
- 外部32M晶振是必须的
- CPU2必须配置为32M
- RTC打开内部唤醒和中断
- 这三个没什么注意的
- 最重要的蓝牙配置,打开就好,其他全默认即可,可以看到蓝牙名称
- 最简配置如上,生成代码后注意事项:
- 下载后先仿真确认程序可以跑到while里面去
- 不同板子的晶振环境不同,比如没有LSE就不要再cubeMX中打开
- 查看有没有卡死在其他地方,比如RTC初始化里面,如果卡死了参考这篇博客:https://blog.csdn.net/a1058191679/article/details/136152359
- 运气好的话打开BLE调试助手,现在可以搜索到蓝牙信号了,仍然搜索不到信号参考下章节。。。
- 下载后先仿真确认程序可以跑到while里面去
五、DEBUG输出调试
-
如果比较倒霉,参考上面的方法仍然没有信号,可能是遇到了第三节中特别注意提到的情况。。。可以使用输出调试测试下,参考文章:https://blog.csdn.net/qq_24312945/article/details/132891223,这个比较灵活,主要的配置如下框选部分,灰色是因为需要配置串口后可选(USART1或LPUART1):
-
我这里没有使用串口打印,而是RTT的打印(按需选择打印方式),,,,如果使用RTT需要修改成自己对应的打印函数:
-
如果打印提示类似如下说明需要重新刷入固件,可以多刷几遍尝试(stm32CubeProgrammer提示成功不一定就是真的成功),需要注意刷入无线协议栈后你的程序需要重新刷入
-
广播正常的打印(包含了连接和断开):
-
祝各位同学顺利跑通!enjoy~
原文地址:https://blog.csdn.net/a1058191679/article/details/136224900
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!