如果一不小心将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处的短接。
搞定!
关键字:stm32 芯片被锁 jlink 解锁
引用地址:
stm32芯片被锁,使用jlink就能轻轻松松解锁
推荐阅读最新更新时间:2024-11-11 15:38
STM32单片机-CorTexM3位带操作的理解
一、STM的位带 STM32支持了位带操作(bit_band),有两个区中实现了位带。其中一个是SRAM 区的最低1MB范围,第二个则是片内外设区的最低1MB范围。这两个区中的地址除了可以像普通的RAM一样使用外,它们还都有自己的“位带别名区”,位带别名区把每个比特膨胀成一个32 位的字。 每个比特膨胀成一个32 位的字,就是把1M扩展为32M , 于是RAM地址 0X200000000(一个字节)扩展到8个32 位的字,它们是:(STM32中的SRAM依然是8位的,所以RAM中任一地址对应一个字节内容) 0X220000000 ,0X220000004,0X220000008,0X22000000C,0X220000010,
[单片机]
STM32 CRH和CRL记录
在进行IO口方向设置的时候经常见到如下设置方式 //IO方向设置 PC11 #define MPU_SDA_IN() {GPIOC- CRH&=0XFFFF0FFF;GPIOC- CRH|=8 12;} #define MPU_SDA_OUT() {GPIOC- CRH&=0XFFFF0FFF;GPIOC- CRH|=3 12;} 先把CRH和CRL管理 模式对照表贴出来进行说明 从同种可以看出CNF表示是输入输出不同模式下的状态,CNF代表的位为31:30或27:26或23:22……管理输入输出模式的是MODE位分别为29:28或25:24或21:20………….,在不同IO口上CNF和MODE共同占用一个十六进制的’
[单片机]
STM32三线检测八个按键(74HC165)
STM32三线检测八个按键是典型的IO扩展应用(并转串),思路和学习51单片机时一致,下面直接上图和代码! 简述: 1.74HC165使用1、2、9脚,15脚可直接接地 2.按键低电平为按下 PA1- SL 并行数据加载 PA2- CLK 时钟 PA3- DAT 串行数据输出 代码: #include 74HC165.h #include delay.h void Init_74HC165(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GP
[单片机]
STM32串口USART通讯
1. USART和UART USART(Universal Synchronous Asynchronous Receiver and Transmitter)即通用同步异步收发器,它是一个串行通信设备,与外部设备可灵活进行全双工数据交换。在这之前我们常用到的是UART(Universal Asynchronous Receiver and Transmitter),它是在USART基础上裁剪掉了同步通信功能,只有异步通信。区分同步和异步最简单的方法就是看通信时需不需要对外提供时钟输出,我们平时使用的串口通信基本都是UART。关于串口通信其他基本概念,在上一篇文章http://blog.csdn.net/qq_29344757
[单片机]
STM32 IO中断(F407)
Title:STM32单片机系列(三) Date: 2020-2-22 Author: Page Categories: -单片机 Tags: -STM32F407 中断 STM32 F4 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32 F4 的强大之处。 STM32 F407 的中断控制器支持 22 个外部 中断事件请求。每个中断设有状态位,每个中断事件都有独立的触发和屏蔽设置。 STM32 F407的 22 个外部中断为: EXTI线 0~15 :对应外部 IO 口的输入中断。 EXTI线 16 :连接到 PVD 输出。 EXTI线 17 :连接到 RTC 闹钟事件。 EXTI线 18 :连接到 USB
[单片机]
stm32能跑linux吗
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已
[单片机]
Stm32浮点运算死机解决方案
需要在SOC中的软核部分(PS)构建一些浮点运算,结果发现仿真6次就死机 咋仿真咋死! 修改代码如下 好了!
[单片机]
STM32之Flash
1. 在默认情况下,只有执行FLASH设置(延迟,预取指,半周期)的函数式允许执行的。 如果想要执行FLASH编写/擦除/保护函数,必须在文件“stm32f10x_conf.h”中定义_FLASH_PROG如下: #define _FLASH_PROG 2.按照不同容量,存储器组织成32个1K字节/页(小容量)、128个1K字节/页(中容量),万利板子是中容量 #define FLASH_PAGE_SIZE ((u16)0x400) //一页为1024个字节 3. /* Get pages write protection status */ WRPR_Value = FLASH_GetWriteProte
[单片机]