如果一不小心将stm32开发板的芯片给锁了,那原因可能是忽略了一个比较低级的问题,就是将stm32中的一些不能独立使用的IO口给了高电平,stm32中有很多口是不能独立使用的,如图(以stm32103rct6 正点原子的mini板为例):
(N:表示不能独立使用,Y:表示能独立使用)
其实截图的内容都是来自stm32不完全手册,需要更多资讯请看stm32不完全手册。
以上就是芯片被锁的一种可能比较低级的原因。接下来就讲一下芯片被锁之后的解决方法。
一般芯片被锁之后在编译后下载时会出现以下的报错:
那么如果是用jlink下载器的就可以直接用jlink来解决问题,用其他办法的我暂时还没试过,只试了用jlink的就成功解锁了。
首先打开自己的jlink的安装路径
然后运行J-Link STM32 Unlock应用程序
然后选择stm32的类型,我这里选择【2】对应stm32f1系列
然后jlink接上,USB线也接在232口那里给开发板和jlink供电,开发板上的所有外设都要拔掉,然后回车,有出现reset factory settings...O.K.时就已经解锁成功了。需要注意的是开发板一定要接上jlink和USB供电,然后板子上的外设都拔掉。
另外还有一种方法是直接打开jlink的外壳来短接通电,具体如下:
1.打开JLINK 外壳,见到JLINK内部电路如下图所示。
2.使用USB线连接JLINK与PC机,以提供JLINK工作电源。
3.短接图中A的两个过孔约5秒。断开A位置的两个过孔的短接。然后拔掉JLINK与P C间的USB线(注意先后顺序)。
4.短接图中,B处的两个过孔。
5.使用USB线连接JLINK与PC机,至少超过10秒后,拔掉USB线,停止给JLINK供电(说明:请确保此过程中,图中B处一直处于可靠的端接状态)。
6.断开图中B处的短接。
搞定!