STLINK下载失败可能的原因,实测有效

        最近在学习数字舵机时遇到了一个问题,和舵机控制本身关系不大:我使用keil5打开淘宝商家的例程代码,经过修改后,我把他烧录进入stm32f103c8t6,第一次烧录正常,随后我进行了代码优化,但是当我第二次烧录的时候,keil5软件显示没有连接stlink,我当时认为( 

),但是经过我的一一排查,这些都不是导致我烧录不成功的原因,于是我开始查看代码是不是有什么问题,比如引脚重映射啥的,确实如此,

GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable , ENABLE);

这一行代码使得引脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP),我们用stlink下载程序时就是通过SWCLK与SWDIO这两个引脚,当这两个引脚被重映射为普通GPIO口时,我们就无法通过这两个引脚进行烧录了,这就是为什么我第一次烧录是正常的,之后的每一次烧录都不能正常烧录。
        那是不是只能用串口进行烧录了呢,就不能用stlink进行烧录了?当然不是,还是有解决方法的。查阅手册和资料可以发现,STM32上电复位瞬间I/O口的电平状态默认是浮空输入,我们可以在这段时间内进行烧录。具体操作:将GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable , ENABLE);这行代码删去或者注释掉,按住STM32的复位键,在keil5点击烧录,等待1s后松开复位键,即可正常烧录,可以多试几次。



        第一次写文章,其实也算不上什么文章,只为了将自己遇到并解决的问题记录下来,防止以后再次遇到时忘记,同时也尽可能为遇到相同问题的伙伴一个可以尝试的解决方法与思路,鉴于作者本身能力非常有限,有什么错误或者问题欢迎评论区留言,我们一同进步。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值