STM32仿真器检测不到内核,你的芯片坏了吗?

您所在的位置:网站首页 sy7656芯片坏了 STM32仿真器检测不到内核,你的芯片坏了吗?

STM32仿真器检测不到内核,你的芯片坏了吗?

2023-06-13 22:05| 来源: 网络整理| 查看: 265

如果赶时间可以直接拉到后面看结论,如果不赶,何不随笔者体验下整个过程加深印象呢? 先来介绍下整个事情的背景。笔者想自制一个白光焊台,板子打好,器件焊上后,上电很顺利的就检测到了内核,妥妥的。硬件准备好了,接着就是软件的事了。打开STM32CubeMX,配置下想要的外设,但是没有配置SYS下的选项。SWD对应的两个引脚PA13/PA14引脚配置的时候也配成了SWD模式。配置好之后生成代码,编译也木有问题,直接烧录,程序也顺利得跑进了MCU里面,在里面转悠了起来,一切都水到渠成,顺利到不能再顺利了。添加功能,想再次烧录却发现SWD检测不到内核了。 于是展开了各种排查,以为是SWD烧录器问题,换了根还是这样,用烧录器连接其他的板子又能正常检测到,所以排除了烧录器的问题。怀疑是MCU被搞坏了,但是第一次烧进去的代码明显在里面跑得不知多欢快,还时不时得往我电脑的调试串口上发数据炫耀。我看不惯它那种我就喜欢你看不惯我却又换不掉我的感觉,恨不得立马重烧一个程序换掉它那副炫耀和得意的嘴脸,可烧录器检测不到内核呀,怎么换??这时候我想起了还有一招常被没有仿真器的武林英雄所使用的招数:ISP。好在我把BOOT引脚引了出来。 到网上下载了个FlyMcu,百度搜索可以找到很多,如果不想搜索,那就猛戳这里吧:FlyMcu 提取码:oh04 下载好后直接双击运行即可,运行后可以看到下面的界面 FlyMcu界面 打开后插上串口,点击搜索串口并选中你需要用来烧录程序的串口,并选择波特率,笔者设为115200,另外也试了9600也是可以的,就是下载慢很多,然后在 联机下载时的文件 下面的方框后面的三个点处点击,选择你的下载文件(hex或bin文件)。接着在板子上把BOOT0引脚接高,重新给MCU上电,然后点击FlyMcu界面中的 开始编程§ 开始烧录。烧录完成后会有下图的提示:命令执行完毕,一切正常。 在这里插入图片描述 烧录完成后想让程序正常的运行,将BOOT0恢复到低电平,重新上电即可。 经过一顿骚操作,终于换掉了那个以为我看不惯却又干不掉它的得意家伙。

虽然能烧程序了,但是没法仿真还是很让人不痛快。最初怀疑是芯片的JTAG调试组件坏了,还了个MCU果然能检测到了,高高兴兴得通过SWD把程序烧进去。。。。。。。。第二次再看,又检测不到了。最后又一顿折腾,网上查资料才发现既有可能是因为SWD口被烧进去的程序给屏蔽了。如果真是烧进去的程序搞的鬼,那我把里面的程序全擦除了是不是就能检测到内核了。说干就干,还是FlyMcu,按之前的操作接好硬件,点击清除芯片,清除完毕后发现真的就能检测到内核了。 把STM32CubeMX打开将SYS下的Debug模式由No Debug改成Serial Wire(也就是SWD模式),再重新生成代码烧进去,妥妥的能检测到内心了,仿真也能正确仿了。

总结(赶时间的直接看这) 1、之所以出现检测不到内核,但程序却能通过ISP下载且能正常跑是因为禁用了调试功能。 2、解决方法有如下几种: 1)借助像FlyMcu这样的ISP烧录工具配合BOOT0拉高烧录程序。 2)借助像FlyMcu这样的工具将之前烧进去的代码擦除掉后用SWD或JTAG烧录。 3)按住复位键不放,开始启动用SWD或JTAG下载,等下载程序开始往MCU下载后再松开复位按键。 4)如果你的PA13/PA14引脚没有用于其他功能,建议开启调试功能并将PA1/PA14映射为调试口,这样是最省事的。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3