CPU:STM32F429IGT6
对于其他的stm32芯片或者其他ARM芯片,其实解决方法都相通,主要就是先修改启动方式,再去更改flash或者ram中的程序。
1.问题出现原因
最近在调试一个程序时,始终调试不通,没办法了,就想着参考网上的例程来看看,结果下载的stm32工程可能和板子的硬件不太一样导致stm32 flash读写保护,此后使用JLink再也无法连接上stm32了,Keil中也没办法识别出设备:
Snipaste_2020-12-10_10-37-11
2.解决方法
首先,修改stm32的启动方式,我的板子默认设置的是从内部flash启动,这里要解决stm32的读写保护就不能选择从内部flash启动了。修改启动方式为:从系统存储器启动(也就是BOOT0接VCC,BOOT1接GND),下图是stm32f429对应的启动方式配置表:
Snipaste_2020-12-10_10-43-06
然后重新给板子上电,打开一个好的工程(能够在板子上正常运行的程序),此时Keil能够识别出设备了,然后重新下载程序到板子就OK了,程序下载完成之后,切换启动方式到原来的启动方式即可。
关键字:STM32 无法连接 JLink
引用地址:
STM32无法连接JLink(Flash读写保护)解决方法
推荐阅读最新更新时间:2024-11-12 13:31
关于 STM32 的几点内容
主要内容: 1.为什么STM32F0没有AFIO时钟呢? 2.关于STM32中的各种电源 3.IAR中如何查看外设寄存器 4.关于问问题 1为什么STM32F0没有AFIO时钟呢? 前面写过一篇文章【关于STM32时钟配置的那些坑】里面有讲述关于什么时候开启AFIO时钟,有朋友下来去研究AFIO时钟时发现STM32F0芯片中没有AFIO时钟,于是就问了这么一个问题:你好,为什么STM32F0没有AFIO时钟呢? 答案就是STM32F0没有AFIO时钟。那又是怎样实现重定义这个功能的呢? 实现重定义功能也是由特定的控制器完成的,需要使用某个控制器,就需要开启对应的时钟。 而STM32F1就是由“Alternate function
[单片机]
基于stm32的蓝牙串口收发系统
本实验利用信驰达的蓝牙模块进行串口的收发任务,stm32f103用的是串口1,手机APP用的是LighntBlue,蓝牙名字为Vence,stm32开发板为中国移动的OneNet开发板 ①连线 蓝牙模块 stm32f103 VCC VCC GND GND EN PC10 RX TX1 TX RX1 BRTS GND P04 PC7 P05 PC8 ②蓝牙模块的工作模式 启动蓝牙模块需要将EN置0,BRTS置0,接上电源,就开始广播模式 当连接成功时,
[单片机]
STM32学习:按键控制LED
前言 涉及知识点:上下拉电阻,stm32_GPIO工作模式,stm32按键控制,GPIO电平读取,宏定义 内容:两个按键控制两个LED灯亮灭。 一、所用知识点复习 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 1、stm32工作模式(注意上下拉输入的区别) 2、按键抖动与常见按键接法 按键抖动: 按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。 抖动时间的长短由按键的机械特性决定
[单片机]
STM32 CAN过滤器设置
看来还是很多人不会设置过滤器,我也看了很久才会,大家先去看一个寄存器 CAN_TIxR(x=0~2) 发送邮箱标识寄存器 标准帧在 31~21 位 共11位 STID 扩展帧在 20~3 位 共29位 EXID +STID 0~2 位分别为 TXRQ ,RTR ,IDE uint16_t CAN_ID = 0x0101 uint32_t ExCAN_ID= 0x10001 所以设置标位帧ID过滤应该这样设: CAN_FilterInitStructure.CAN_FilterIdHigh = CAN_ID 5; CAN_Filte
[单片机]
【eBox生态圈】连载一:简化STM32的编程之eBox
STM32目前已经成为一款性价比相当高的单片机控制解决方案,由于STM32本身功能比较全面,备受大家的青睐,网络上有这相当全面的资料,不管是新手还是老鸟都可以通过一个开发板的学习来了解STM32的基本编程思路。但是总体感觉STM32的编程比较复杂,难以记忆或者理解。设置任何一个外设都要初始化相当多的寄存器。靠记忆已经无法完成,经常是是复制一段配置代码再修改成自己需要的,或者不断的查询复杂的手册和编程指南来完成。用起来总是不能像Arduino那样方便。如何解决STM32编程复杂的问题已经成为一个相当大的问题。 目前编程所遇到的问题: 外设问题:STM32官方库在一定程度上降低了编程的复杂度。提供了全面的API接口,可以支持任何一
[单片机]
基于STM32实现简单的CAN通讯过程
CAN通讯在车辆工程中用的非常广泛,本文将基于stm32实现简单的can通讯过程。 首先了解一下CAN通讯的主要特点: 1、 数据通信没有主从之分,任意一个节点可以向任何其他(一个或多个)节点发起数据通信,靠各个节点信息优先级先后顺序来决定通信次序。 2、 支持时间触发通信功能, 发送报文的优先级可软件配置。多个节点同时发起通信时,优先级低的避让优先级高的,不会对通信线路造成拥塞。 3、 CAN 是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信距离最远可达10KM(速率低于5Kbps),速率可达到1Mbps(通信距离小于40M)。 4、 CAN 总线采用了多主竞争式总线结构,具有多主站运行和分散仲
[单片机]
STM32 GPIO输出高低电平转换速率测试
最近对STM32 GPIO的输出端高低电平变化速率产生兴趣,于是用我所知道的控制GPIO的不同方法做了测试。 单片机CPU:STM32F103ZET6 软件平台:kEIL MDK 逻辑分析仪:金沙滩 LA2016 从图中看出,最快的是 GPIOA - ODR = 0x1; GPIOA - ODR = 0x0; 和 PA0 = 0x01;PA0 = 0x00; 和 GPIOA - BSRR = 0x01; GPIOA - BRR = 0x01; 转换周期是220ns,4.55Mhz 最慢的是 *PAO0 = !*PAO0 ; 和 PA0 =!PA0; 取反操作浪费不少
[单片机]
STM32单片机定时器调试之方波输出
今天试着让STM32的定时器输出50%占空比信号,按照例程写了一下方波初始化函数,例程用的是STM32自带库函数,由于嫌麻烦,我又自己写了一个简单的,采用定时器1进行输出。结果一上来,没反应,修改了很多参数,还是没反应,然后将开发板例程写进芯片后,有反应 ,仔细越多数据手册,没有问题,纠结一上午,中午吃饭。吃完饭后,下午又开始试验,还是别人程序有反映,自己程序,没反应。再看了看,开发板程序使用的是TIM3,而我使用的是TIM1,于是又把我的程序将TIM1换成TIM3,点击调试运行,有反应 。不会是高级定时器只能干高级的任务吧,像输出方波这么简单的低级任务他不惜的干?郁闷了半天。后来通过在网上查找,这个程序 以下为源代码,CC1进行比
[单片机]