STM32仿真器检测不到内核,你的芯片坏了吗? |
您所在的位置:网站首页 › sy7656芯片坏了 › STM32仿真器检测不到内核,你的芯片坏了吗? |
如果赶时间可以直接拉到后面看结论,如果不赶,何不随笔者体验下整个过程加深印象呢? 先来介绍下整个事情的背景。笔者想自制一个白光焊台,板子打好,器件焊上后,上电很顺利的就检测到了内核,妥妥的。硬件准备好了,接着就是软件的事了。打开STM32CubeMX,配置下想要的外设,但是没有配置SYS下的选项。SWD对应的两个引脚PA13/PA14引脚配置的时候也配成了SWD模式。配置好之后生成代码,编译也木有问题,直接烧录,程序也顺利得跑进了MCU里面,在里面转悠了起来,一切都水到渠成,顺利到不能再顺利了。添加功能,想再次烧录却发现SWD检测不到内核了。 于是展开了各种排查,以为是SWD烧录器问题,换了根还是这样,用烧录器连接其他的板子又能正常检测到,所以排除了烧录器的问题。怀疑是MCU被搞坏了,但是第一次烧进去的代码明显在里面跑得不知多欢快,还时不时得往我电脑的调试串口上发数据炫耀。我看不惯它那种我就喜欢你看不惯我却又换不掉我的感觉,恨不得立马重烧一个程序换掉它那副炫耀和得意的嘴脸,可烧录器检测不到内核呀,怎么换??这时候我想起了还有一招常被没有仿真器的武林英雄所使用的招数:ISP。好在我把BOOT引脚引了出来。 到网上下载了个FlyMcu,百度搜索可以找到很多,如果不想搜索,那就猛戳这里吧:FlyMcu 提取码:oh04 下载好后直接双击运行即可,运行后可以看到下面的界面 虽然能烧程序了,但是没法仿真还是很让人不痛快。最初怀疑是芯片的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 |