打印
[应用相关]

STM32调试器配置异常导致的问题与解决方法(二)

[复制链接]
486|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在上文《STM32调试器配置异常导致的问题与解决方法(一)》中,总结了ST-LINK调试出现异常情况的处理,这里再把JLINK调试出现异常的情况记录如下:

使用特权

评论回复
沙发
deadtime|  楼主 | 2020-5-24 11:03 | 只看该作者
STM32F103芯片管脚配置时,如果在STM32CUBE的SYS选项配置成 No Debug,或Serial Wire,使用JLINK调试或下载代码时,报错:




使用特权

评论回复
板凳
deadtime|  楼主 | 2020-5-24 11:04 | 只看该作者
上面报错对应的CUBE产生的代码是(在文件 stm32f1xx_hal_msp.c 中):

__HAL_AFIO_REMAP_SWJ_DISABLE();        //SWD和JLINK都不支持

__HAL_AFIO_REMAP_SWJ_NOJTAG();         //支持SWD,即ST-LINK可用,但不支持JLINK

将上述语句改成

__HAL_AFIO_REMAP_SWJ_NONJTRST();     //不使用JLINK的RST引脚,可节省一个pin



__HAL_AFIO_REMAP_SWJ_ENABLE();           //全功能的JLINK功能(当然包括SWD功能,即ST-LINK也是支持的)

再使用JLINK下载或debug就都ok了。

使用特权

评论回复
地板
deadtime|  楼主 | 2020-5-24 11:05 | 只看该作者
当项目中MCU选型使用TSOP封装等仅有少量pin的芯片时,可能必须使用调试管脚作为GPIO来使用,为了不影响debug和程序下载,可以考虑下面的变通方法:

调试代码时,先把SWDIO、SWCLK等pin配置成debug模式,即

__HAL_AFIO_REMAP_SWJ_ENABLE(); 

使用特权

评论回复
5
deadtime|  楼主 | 2020-5-24 11:06 | 只看该作者
这种情况下,可以正常调试程序,当然,对应管脚的GPIO功能是无效的;当整体功能调试完毕、确认不再需要调试功能后,再把SWDIO、SWCLK配置成GPIO模式。此时,使用5线制的ST-LINK(带复位线)是可以正常下载的(因为复位后MCU默认是支持debug的,只要之后不运行用户程序,可debug状态就不改变),但不能debug。

使用特权

评论回复
6
deadtime|  楼主 | 2020-5-24 11:08 | 只看该作者
作者:海东青电子
链接:https://www.jianshu.com/p/7228f7609356
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

使用特权

评论回复
7
xinxianshi| | 2020-5-24 23:52 | 只看该作者
没有专用的ST-LINK好用。

使用特权

评论回复
8
paotangsan| | 2020-6-6 17:40 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
9
renzheshengui| | 2020-6-6 17:41 | 只看该作者
楼主辛苦了

使用特权

评论回复
10
wakayi| | 2020-6-6 17:41 | 只看该作者
内容非常有用

使用特权

评论回复
11
wowu| | 2020-6-6 17:41 | 只看该作者
值得收藏 顶一下

使用特权

评论回复
12
xiaoqizi| | 2020-6-6 17:41 | 只看该作者
呵呵 内容很好

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

470

帖子

2

粉丝