本帖最后由 wws2002 于 2024-11-4 13:57 编辑
最近几天把STM32WB09KE开发套件提供的Demo程序都下载、编译和调试了一下,感觉提供的例程只要开启了低功耗模式,通常就会出现识别不了ST-link的SWD口,需要全部清除再下载,比较麻烦,可以参考我上个帖子的Tips部分内容。
经过对代码的的研究,开始想通过关闭低功耗模式,尝试了很久没有成功,另外下面想做的项目也需要打开低功耗模式,这个方向就放弃了。但是开发过程不能没有debug,另外烧录也很麻烦。
出现识别不到SWD口问题:
全部擦除一下才行
然后就可以正常识别和下载了。
如果低功耗这个功能是需要的,不能关闭,是否可以在低功耗模式下需要debug的时候打开或唤醒,这样可能会有一部分功耗问题,不过debug过程可以先不考虑功耗,实际应用的时候在关掉debug功能来保持最低功耗不就可以了,说干就干,在仔细研究了提供的HAL库函数,和debug相关的有一个函数HAL_PWREx_EnableDBGRetention(),应该和这个相关,我在BLE_p2pServer这个示例中,在初始化中使能低功耗的debug功能:
进入函数发现,这里应该是在PWR中清除Wake-up 标志,但是这写标志位在CubeMX中,我找了好久没有看到,看来有时候可视化工具还是要查找编程手册才行,直接找,不知道在哪里,我觉得在MX中需要多一些说明或者超级链接可以连接到对应的手册会比较好,特别是对我这样第一次使用的人来说会好一些。
实际验证加上这个使能低功耗下debug功能后,我增加了一个闪灯来确认程序是否可以正常运行,发现可以正常识别SWD口,可以正常调试和下载。
但是有小伙伴验证发现在MDK上不起作用,如果这样的话,就需要把BLE_p2pServer这个Demo的低功耗模式禁用掉,可以在app_entry.c中设置final_level=0, 并注释掉不让其进入低功耗stop模式// UTIL_LPM_EnterLowPower();//wws禁用stop模式
|