使用STM32Cube生成的工程在使用JLink下载调试时遇到的问题

本文介绍了在使用STM32Cube开发STM32程序时遇到的JLink下载及调试问题。程序能烧录但出现警告,全速运行导致错误。通过检查stm32f1xx_hal_msp.c文件发现第78行关闭了SW-DP,导致仿真功能失效。解决方案是注释掉该行代码,并在Cube设计中正确配置SW-DP相关引脚为仿真引脚,设置SYS的Debug为Serial Wire。
摘要由CSDN通过智能技术生成

最近在学习使用STM32Cube这种比较新的方法来写STM32程序,但是在刚开始学的时候就遇到了一个让自己很头疼的问题,在使用JLink下载程序时,程序能够烧写进板子,但是却出现一个莫名其妙的警告。

并且在使用在线调试功能时,点击全速运行,出现一堆错误。

 

在网上找了许多的解决方案,也有很多遇到类似问题的,但是试了以后都没有解决,最后自己一步一步的找原因,最后发现在STM32Cube生成的工程中的stm32f1xx_hal_msp.c文件中的第78行有这样一行代码。

/**DISABLE: JTAG-DP Disabled and SW-DP Disabled 
    */
  __HAL_AFIO_REMAP_SWJ_DISABLE();

这行代码将SW-DP关闭了,所以我们在仿真的时候程序运行到这里因为SW-DP被关闭,仿真功能就不能使用了,程序就会执行不下去,所以就报了上面那样的一堆错误。在把这行代码注释掉以后问题得到解决。

 

上面的解决方法是我一步步运行找出来的,归根结底的原因是在用Cube设计时,要将和SW-DP相关的引脚定义成仿真引脚,这样Cube生成的代码就会自动将上面的那行代码改掉。

 

然后在Pinout里将SYS里面的Debug设置成Serial Wire,这样问题得到解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值