cubeMX生成AC6工程,无法调试!!!

本文分享了一次STM32调试过程中遇到的问题及解决方案。在使用STM32F103C8T6并借助STM32CubeMX生成代码时,遇到了HAL_Init()函数处程序崩溃的情况。通过排查发现是__HAL_AFIO_REMAP_SWJ_DISABLE()宏函数默认被调用,导致SWD调试功能被禁用。最终通过注释掉该行代码解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

由于之前采用KEIL开发,但是由于KEIL的编辑功能实在是太差了,偶然的机会,发现ST官方,有提供自己的开发工具(AC6)。实际上是ST公司基于ECLIPSE针对STM32开发的一个插件,ECLIPSE使用过的都知道,和KEIL比起来,爽的不是一点半点。

二、问题

其实在此之前也是已经使用了AC6+CUBE开发了一个STM32的项目,使用的是STM32F407ZET6,并没有出现无法调试的问题!现在使用STM32F103C8T6,使用cubeMX生成代码,编译没有问题,一调试,卧槽,既然在HAL_Init(),这个函数这里,崩溃了(无法再往下执行了)。我草,这下完蛋了。之前使用407并没有出现这个问题,难道是软件BUG。经过百般折腾,最终发现,问题出现在HAL_Init()在这个函数里边,调用__HAL_AFIO_REMAP_SWJ_DISABLE()这个宏函数,仔细一看,这不是要关闭调试功能吗,难怪,难怪,怎么崩溃了呢!二话不说,赶紧注释了。重新调试,程序终于一如既往的正确执行了!!!!!

三、总结

cubeMX生成F103程序代码,默认在加入 __HAL_AFIO_REMAP_SWJ_DISABLE()这行代码,关闭SWD功能,导致调试崩溃!!!推荐大家以后,使用cubeMX生成代码,默认把这个打开,会占用3个引脚,但是,就不会关闭SWD功能了!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值