|
这两天在使用STM32WL55JC芯片,板子是ST提供的评估板,在官网的介绍中得知这是一块多核芯片,其中搭载着一块协核M0+,M4的主核和M0+的协核都可以单独的工作。 我们在使用CubeMX的过程中也可以发现,CubeMX中有开启多核的选项。
在这其中我们可以配置各个核心的功能。
我们正常的创建完任务之后,配置好各个功能就开始我们的踩坑之旅。 STlink连接和烧录问题(已解决)
我们进入工程之后,由于我们开启了双核,因此两个工程是分开的,二维码默认打开的是M0的工程。而我们的STlink挂载的是在M4的核上,这就是为什么我如果开启单核工程的话STlink是可以正常使用的,并且使用STM32CubeProgrammer也是可以正常连接正常烧录的。
但是偏偏开启了双核工程之后就无法使用,我开始还以为是芯片开启了低功耗模式中的休眠模式或者芯片自锁,试了好多方法都没办法解决。
反正这个问题困扰了我一晚上。查询了许多手册和资料也没有解决这个问题。直到看见了官网上的一句:STlink挂载在M4的主核上,因此突然想起来默认的工程是M0+(之前也没试过这种多核的工程)
因此将M4工程设为主工程,之后发现就可以正常的检测到 Stlink了。
这里注意的是,我们还需要更新一下我们的STlink固件。 连接上我们的Stlink之后,我们就可以正常的烧录了,然后M0+的核也就连的上了,不知道是不是因为之前板载代码的问题,总而言之这里是解决了烧录问题。 不过后面还有更奇怪的问题。 我在While里面加了GPIO翻转的代码。
首先需要说明的是,这个IO确定是LED的IO,而且我也配置了GPIO的配置。
但是LED不亮,不清楚是什么的原因,但是程序中是有关于CubeMX的GPIO初始化函数,然后我以为是程序卡住了,调用Debug之后发现程序是可以正常运行的。但是LED还是没有反应。 于是这时候突然怀疑是GPIO初始化的问题。 CubeMX的GPIO初始化问题(未解决)
这时候发现GPIO的初始化函数居然是空的,这也是我第一次遇到CubeMX生成的函数初始化失败的过程。 于是自己补全了GPIO初始化的过程。
这时候LED就可以正常使用了,这时候给第二个核配置LED也可以正常使用了。 后面开启USART的时候,发现其配置了USART,但是GPIO的内容依旧是空的。
然后试过了,如果不分开文件的话初始化也是没有GPIO的初始化内容。
转载自: 电路小白 如有侵权请联系删除 |
最通俗易懂的STM32完整启动流程分析
STM32选型指南:这些型号让您的项目又快又省
基于LORA的环境感知系统
【新品发布】超低功耗复合调制无线STM32WL3x微控制器
实战经验 | 从STM32WL55JC到STM32WLE5CC的LoRaWAN_FUOTA移植
基于STM32WL55中开启双核的使用经验分享
基于STM32WL LSE 添加反馈电阻后无法起振问题经验分享
STM32WL sub-GHz SoC 未来工业物联网最佳的选择
STM32Wx 助力万物互联3.0
STM32Wx 赋能工业物联网解决方案
微信公众号
手机版