我所遇到问题的芯片是STM32F429IGT6,可能F1系列或者其他的STM芯片都可能遇到这样的问题,网上目前比较多的是针对keil软件中的配置,可以解决绝大部分网友的问题,但是可能也有像我一样的网友问题出在硬件上,谨加以记录,节省大家伙的时间。
目前大家所遇到的还是软件问题居多,所以我也是建议遇到问题先从keil设置入手,接下来就越俎代庖地把我所找到的软件问题总结一下: 这种问题一般就是在keil设置中有错误或者pack包有问题
硬件的问题主要体现在芯片可能被读/写锁定导致无法读取或写入,这也是我所遇到的问题,主要分为JTAG调试或者st-link调试方式。JTAG类解决方法网上已有相关解释,加上我并没有使用JTAG调试方法,故而不做过多总结,主要来说一下st-link调试问题所在。 解决的思路来源于一篇用于JTAG调试帖子,这位博主应该是使用Jlink进行的调试,我按照他的博客下载软件后连接不成功,这才意识到我用的是stlink,一度傻乎乎搞了一个多小时… 之后考虑了一下,既然JTAG有这种修改软件,那么stlink作为更普遍的调试工具,应该也存在,故而在网上查了查相关信息,最后在ST官网找到了软件,就是图中所示软件: 这个软件可以在官网直接找到,内存占用不大,下载时间并不长,大家可以在以下链接自行下载: link
为了防止冲突,在使用该软件时应用STLINK连接STM32并供电,关闭keil5,按下面步骤修改设置: 首先点击快捷栏中的插头按键,如下图:(从左到右数第三个按键) 正常连接后应该是下图所示: 连接后在Target中找到Option Bytes,点开 点开之后首先要选择读保护等级为Level0,BOR Level设置为OFF或者有的人显示是Level0,两者一样的概念,其他的设置不变。 读保护取消后,修改写保护,如下所示: 所有的选项中,都不选中,直接点击Unselet all即可,之后点击apply即可。注意apply后观察信息栏中是否成功应用,如果成功应该显示以下信息: 这样再回到keil中重新下载程序即可成功,问题解决!