当前位置:网站首页>STM32下载一次程序后就无法再次下载,程序无法运行。
STM32下载一次程序后就无法再次下载,程序无法运行。
2022-06-21 20:45:00 【不会武功不懂江湖】
前言
由于在实验室中新接手了一个项目,需要在原有的硬件基础上重新写程序,于是开始用原来的主控板,但是在使用过程中发现用Jlink下载一次程序后就无法读到芯片,也无法下载程序,芯片也停止运行程序了,经过一天的折腾,终于完美解决了这个问题,所以将该问题记录下来,提供给各位参考。
1.现象
使用J-link下载完一次程序后无法再次下载程序,芯片停止运行。
2.各种解决办法
2.1 解决办法一. 修改BOOT0管脚
在网上找了大量的资料后发现有些帖子说可能是芯片的SWCLK和SWDIO管脚的状态被更改了。
一般芯片的SWCLK和SWDIO管脚都是连接一个10k的电阻接地,来实现FLASH启动。
解决办法是:
1.将BOOT0拉高
2. 按手动复位按键
3.将BOOT0在接地
我这样操作过后发现一样也读不到程序,但是在BOOT0拉高时可以读到芯片,但下载不了程序进去。
2.2 解决办法二. 采用ST-link Utility
采用ST-link Utility来擦除芯片里的程序,链接:
https://blog.csdn.net/weixin_49805374/article/details/116604048?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-1&spm=1001.2101.3001.4242

但是在操作过程中发现,芯片根本无法连接到 ST-link Utility,在多次尝试后发现在连接芯片的过程中需要按下复位键就可以连接芯片,在擦除芯片的数据的过程中也需要按键复位件,然后惊奇的发现使用Jlink可以读到芯片数据,并且可以下载进去程序, 我以为问题就这样解决了,但是 后面发现 程序只可以下载进去一次,并且程序下载进去后无法运行, 而且无法进入硬件仿真,只有在按下复位键后才能进入仿真,并且程序在运行到systikclock()后就卡死了,于是我怀疑时晶振的问题,经过检查发现原来板子上焊的是25M晶振。
3.真正的解决办法
问题的原因是板子上焊的是25M晶振,而STM32官方固件里是8M的晶振,所以在stm32的官方固件中修改过来就好了。
3.1修改STM32官方固件中的晶振参数
3.1.1 在stm32f4xx.h中 将 HSE_VALUE的参数修改为 25000000

3.1.2 在system_stm32f4xx.c中的第316行的PLL_M修改为25

于是这样就完美解决了这个问题。
边栏推荐
- Common abbreviations and terms of mitochondrial genome
- Pi4j GPIO pin pull-up resistance, pull-down resistance concept
- IP-guard打印管控,防止打印渠道信息泄露
- Jeu de boutons de force 4 (version MySQL)
- WPF ListBox虚拟化
- 【深入理解TcaplusDB技术】一键安装Tmonitor后台
- Precautions for bitmap use
- 个人的股票交易经验
- flutter系列之:flutter中的IndexedStack
- vb屏幕分辨率设置和获取_hawkol_新浪博客
猜你喜欢

Nacos安装指南

Electronic bidding procurement mall system: optimize traditional procurement business and speed up enterprise digital upgrading

WPF thread manipulation UI problem
![[in depth understanding of tcapulusdb technology] tcapulusdb construction data](/img/64/4d7ec393d8469cdadc89078a8cf4b1.png)
[in depth understanding of tcapulusdb technology] tcapulusdb construction data

【深入理解TcaplusDB技术】TcaplusDB构造数据
![[in depth understanding of tcapulusdb technology] how to realize single machine installation of tmonitor](/img/74/a645742a8e135b32154859be956760.png)
[in depth understanding of tcapulusdb technology] how to realize single machine installation of tmonitor

WPF 路由

Design and implementation of spark offline development framework
![[deeply understand tcapulusdb technology] tcapulusdb import data](/img/a8/04c4c6703a6137d17666f211d7988d.png)
[deeply understand tcapulusdb technology] tcapulusdb import data

Introduction to software architecture
随机推荐
Notes on topic brushing (16) -- binary tree: modification and construction
UWP Dispatcher用法
fork-join线程池
利用for循环,分别计算1-100中奇数的和、偶数的和【方法二】
KVM虚拟机在线扩展磁盘 —— 筑梦之路
.bmp图片的文件头解析
GDB调试实战(8)给程序传递启动参数
celery+rabbit分布式任务处理
Correspondence between rtx3090 and pytorch versions
Use the for loop to calculate n! Value of
[WUSTCTF2020]朴实无华-1
GDB debugging practice (8) transfer startup parameters to the program
Common abbreviations and terms of mitochondrial genome
Use the while loop to calculate the odd and even sums in 1-100 [method 1]
cpu指令重排导致错误的一个例子
LeetCode-543-二叉树的直径
【深入理解TcaplusDB技术】如何实现Tmonitor单机安装
Synplify Pro的常用选项及命令
Technology sharing | introduction to kubernetes pod
HIC Pro | HIC data processing tool