Jlink下载stm32cube生成的程序会出现No Cortex-M SW Device Found错误,下载的第一次没事,第二次就会报错

时间:2024-05-23 09:48:35

Jlink下载stm32cube生成的程序会出现No Cortex-M SW Device Found错误,下载的第一次正常,第二次就会报错的问题


作为写stm32的神器stm32cubemx越来越多人开始使用,
而且图形化一键式生成代码相比在库里面一个一个拖出来简直太爽了
最近刚刚学会使用stm32cubemx来点灯,
但是发现我的3块板子全被“杀死”了!????

注意是3块--------stm32f103c8t6 stm32f103rbt6 stm32vet6
全部都凉凉了,下了一次以后就下不进去程序,
出现No Cortex-M SW Device Found错误的提示框!!!
Jlink下载stm32cube生成的程序会出现No Cortex-M SW Device Found错误,下载的第一次没事,第二次就会报错
以前使用Jlink下载也遇到过这样的情况,就试了一下什么改BOOT啊,
设置jlink的配置啊,重新拔插啊,RST啊…
就差芯片扣下来量量体温了# TAT ~~~~~

#######################分割线###########################
/**********************************************************************************/

使用stm32cubemx生成的代码如下:
Jlink下载stm32cube生成的程序会出现No Cortex-M SW Device Found错误,下载的第一次没事,第二次就会报错
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
while (1)
{
HAL_GPIO_TogglePin(led_GPIO_Port, led_Pin);
HAL_Delay(1000);
}
}
编译啊链接啊啥的都没问题,0 Error(s), 0 Warning(s).
##好歹是神器吧,出错警告啥的多打脸啊 ( ̄ε(# ̄)
博主使用的是Jlink下载,过程是这样的*******
Jlink下载stm32cube生成的程序会出现No Cortex-M SW Device Found错误,下载的第一次没事,第二次就会报错
这是Jlink下载前的配置,选中J-llink ,点击Settings ///用过的都懂…
Jlink下载stm32cube生成的程序会出现No Cortex-M SW Device Found错误,下载的第一次没事,第二次就会报错
把Port改为sw 右侧就会出现一些数据…
但是如果把我们写的程序下进去以后…###阴险ヽ(。>Д<)o゜
Jlink下载stm32cube生成的程序会出现No Cortex-M SW Device Found错误,下载的第一次没事,第二次就会报错
就会发现Jlink没了!????
要换一块新的板子才能用,而且这玩意跟个病毒一样,还会
**传染***
每个板子都会只能下载一次,下一次就再一次链接不上Jlink

/恭喜你中了最新的Jlink-Virus******/
该病毒的功能就是往你的板子里面注入**********
adfch#@&$&#%3558rds47#@%^3sh
[email protected]#%&*^@#%

我们回归正传,这个Jlink-Virus其实就是stm32cube封装函数的问题
会把Jlink下载的地方给失能#disable,关闭了引脚的SWD下载功能
Jlink下载stm32cube生成的程序会出现No Cortex-M SW Device Found错误,下载的第一次没事,第二次就会报错
这个罪魁祸首在这个里面--------> HAL_Init();

Jlink下载stm32cube生成的程序会出现No Cortex-M SW Device Found错误,下载的第一次没事,第二次就会报错
查看这个函数的内容》》
Jlink下载stm32cube生成的程序会出现No Cortex-M SW Device Found错误,下载的第一次没事,第二次就会报错
找到—>/* Init the low level hardware */ HAL_MspInit();
Jlink下载stm32cube生成的程序会出现No Cortex-M SW Device Found错误,下载的第一次没事,第二次就会报错
进入这个HAL_MspInit();的初始化函数里面会看到一个这样的代码

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

这就是那个**“罪魁祸首”** —使得Jlink无法第二次下载的原因,
因为这个函数关闭了SWJ,使得下载程序引脚失效,
对于解决的办法嘛!!

直接注释掉就OK啦!!!
直接注释掉就OK啦!!!
直接注释掉就OK啦!!!
Jlink下载stm32cube生成的程序会出现No Cortex-M SW Device Found错误,下载的第一次没事,第二次就会报错
如果一个一个找太麻烦了,
也可以注释掉开始的第一句,

Jlink下载stm32cube生成的程序会出现No Cortex-M SW Device Found错误,下载的第一次没事,第二次就会报错
然后再次下载就OK啦!!

END----

NO NO NO NO !!!

我的几块板子怎么办!!!
我的几块板子怎么办!!!
我的几块板子怎么办!!!

博主查过了,不要慌,把板子的boot0改接一下高电平(1)
然后按下RST,重启一下,再把boot0接回低电平(0),
就可以下载程序啦,再按照以前正常下载程序就行了>>>>>>>

/博主只是一时经验之谈,如果有巨佬有更好的解决办法还望赐教,不胜感谢!/