【marlin学习】STM32 Flash 被锁,如何在PlatformIO中更改外部晶振频率值?

Error: timed out while waiting for target halted /************************************************************************************ * Error: timed out while waiting for target halted * 说明: * SW4STM32 STLINK 无法烧录问题。 * ... 阅读详情

问题描述: 程序在开发板上可以正常运行,在新作的板子上无法正常运行。
新板子只要烧录该程序,就会频繁报错“Error: timed out while waiting for target halted”,之后再也无法擦除和修改程序。只能通过修改bootloader模式重新擦除和修改程序。
经查找发现,程序配置的外部晶振值与开发板一致,但是与新作的板子不一致,从而导致新作的板子时钟超频Flash被锁。

解决方法: 需要修改工程内的时钟配置信息。

问题描述: platformIO 不像 STM32Cube 可以图形化配置时钟,也没有明显的配置头文件可以直接修改HSE_VALUE,如何修改stm32+Arduino工程的时钟配置 ?

探索解决方法:

  • 1.stm32 arduino 是在哪里配置时钟的?又是在哪里定义HSE_VALUE 的?
    每块板子的时钟配置都会有差异,查找发现,该时钟配置是在对应板子下的“variant.cpp”文件内。
    在这里插入图片描述
    查找发现,该工程调用了一个共用的库“framework-arduinostm32“,这个是platformIO在建立工程的时候自动下载的库文件。
    具体文件如图所示:
    在这里插入图片描述

  • 2.是否直接修改 hal_conf_default.h 文件的宏定义值就可以解决问题呢?
    实际测试可以解决该问题(注意,如果只更改HSE_VALUE,没有变更PLLM: Division factor for PLL VCO input clock,那么系统的时钟也是不正确的,所以要注意这两个值同时改)。
    很显然,被修改的这个是一个共用的文件,共享给多个不同的工程使用;如果我随意更改他,那么我的其他工程也会受到影响,牵一发而动全身,显然这种做法并不可行。

  • 3.那该如何修改这个宏定义,才能够在不需要改动 hal_conf_default.h 文件的情况下,又可以让该工程正常运行?
    正确做法是重新定义,而不是直接修改。
    PlatformIO建立工程的时候,会根据选择的board而调用对应的variant文件。因此,针对与这块新板子而言,应该直接将宏定义放在对应板子的variant.h文件中。
    在这里插入图片描述
    4.有没有更好的方法来解决这个时钟配置的问题?
    同一块板子,不同的工程,有可能会应用不同的时钟频率要求,是否可以Overload “SystemClock_Config”函数来重新配置时钟呢?

Clion 开发踩坑记录 踩坑了踩坑了还是用石广黄ision5吧 阅读详情

相关推荐

PlatformIO STM32 时钟 配置

前言:最近 尝试 用PlatformIO IDE arduino 开发 STM32.关于系统时钟配置PlatformIO 官方意思 是 通过可以 改变 cpu 频率。但搜寻资料 尝试各种方法 无效。board_build.f_cpu 的更改 并不会 影响 系统时钟。查看了框架 的相关调用函数。全部都是 弱定义(其中 bluepill_f103c8 这类板 默认使用 HSE配置。genericSTM32F103C8这类默认用的是HSI),意味着 自己实现 才是 解决之道。

天昊吖 803

TMS320F28335连接时报错

The value is '-233' (0xffffff17)

qq_63510042的博客 7388

Clion配置STM32开发环境踩坑

在使用CubeMX生成了代码之后,在cion中没有自动生成Cmake文件,工程不能进行编译,检查了CubeMX生成代码的配置是没有问题的,并且检查了编译环境等配置都是没有问题的,最后把工程名子‘01.Template’改为了‘01_Template’就没有问题了,原来是clion的工程名字不能有这个点号‘.’的原因。。。 ...

FILWY_M 7135

使用CCS仿真F28335报错:Timed out waiting for target to halt while executing FlashAPIInterface28335V2_10.out

经过排查,是由于我的板子用的晶振是50M的,而工程中默认是30M,10倍频,再2分频,时钟配置出错了,所以导致烧录失败,我改成50M,6倍频,再2分频,就烧录成功了。使用uniflash也需要注意改过来。但是我使用28035,280039C都没有出现过这个问题,从来没设置过这玩意儿,个人猜测(仅猜测)可能是因为28335没有内部晶振,所以时钟只能依靠外部晶振来给,配错的话就起不来了。

qq_50555600的博客 1227

STM32开发者的Clion配置实战:解决CubeMX生成代码后的CMake与STLink下载问题

本文详细介绍了STM32开发者在Clion中配置开发环境的实战经验,重点解决了CubeMX生成代码后的CMake文件生成问题与STLink下载超时错误。通过规范的工程命名、CMake配置优化和STLink复位策略调整,帮助开发者快速搭建高效的STM32开发环境,提升嵌入式开发效率。

oil88的博客 669

华清远见23042 ,C++考试 编程题:自定义一个 string 类 , 要求添加相关函数的实现代码_华清远见c++考试

【代码】华清远见23042 ,C++考试 编程题:自定义一个 string 类 , 要求添加相关函数的实现代码_华清远见c++考试。

2301_79655576的博客 532

OpenOCD报错:Error: timed out while waiting for target halted embedded:startup.tcl错误

因为用了自锁的按钮,忘了按第二下把自锁打开,所以器件一直在睡眠模式下。

qq_40947291的博客 2841

STM32开发笔记96: 在PlatformIO中更改外部晶振频率

单片机型号:STM32F091RCT6 低于PlatformIO开发平台,如果更改外部晶振频率,需修正stm32f0xx_hal_conf.h文件,原先使用keil开发时,此文件和项目相关,可以单独修改,但是在PlatformIO平台上,则此文件的路径如下: 自己多次尝试屏蔽此文件,包括删除,都没有成功,实在没有方法,只能在此文件中,直接更改,代码如下: /* ############...

snmplink的博客 1773

20210307 Unknown property “FlashCoreSelection“ 疑似解决

C28xx_CPU1: Error occurred during flash operation: Unknown property “FlashCoreSelection” 今天发现一个有趣的现象,生成的代码如果用28379D,就不会报错,但是用28379S就会报错。

电力电子&电能质量求交流,加Q164429350 1294

人工智能(AI)简史:推动新时代的科技力量

人工智能(AI,Artificial Intelligence)是计算机科学的一个分支,旨在研究和开发可以模拟、扩展或增强人类智能的系统。它涉及多种技术和方法,包括机器学习、深度学习、自然语言处理(NLP)、计算机视觉、专家系统等。

qq_17153885的博客 1万+

Cadence Sigrity PowerDC实战:如何用PCB电热混合仿真解决散热难题(附详细配置步骤)

本文详细介绍了如何利用Cadence Sigrity PowerDC进行PCB电热混合仿真,以解决高功率密度设计中的散热难题。文章通过解析电热耦合原理,并附上详细的配置步骤与实战技巧,指导硬件工程师同步优化电气性能与热管理,从而在设计源头提升产品可靠性与效率。

weixin_29292535的博客 196

stm32烧录错误记录:flash timeout. reset the target and try again

解决不了,我把写保护和读保护都解开了,但是依然不能用Keil5下载,怎么办呢?我就先生成axf文件,然后利用STM32 ST-LINK Utility 把AXF文件下载到设备上,竟然可以运行,那好,我就这么干了。

d736243358的博客 584

PIN限幅二极管在接收机中的应用

本文介绍了接收机保护限幅器的工作原理及应用,重点阐述了PIN二极管在雷达收发机中的关键作用。文章指出,限幅器能有效保护接收机灵敏元件免受大功率信号损害,主要通过反射而非耗散功率来实现保护功能。文章详细分析了PIN二极管的层结构特性及其阻抗变化机制,解释了多级限幅器的设计原理(包括清理级和粗限幅器的配合使用),并介绍了通过添加检波二极管降低阈值水平的方法。最后指出,实际应用中限幅器通常采用3级或更少的设计。

weixin_49761275的博客 2371

Error: Flash Timeout.Reset the Target and try it again

问题介绍:这个问题通常出现在使用Flash编程器时,表示目标芯片没有正确响应编程器的命令。这可能是由于目标芯片上电不稳定、芯片损坏或者编程器与目标芯片之间的连接不良等原因引起的。1.检查目标芯片的电源是否正常,可以使用示波器或万用表来检测电源波形和电压值是否符合要求。补充:这个问题在自己设计制作的电路出现的,以上内容来源于检查硬件和查阅资料整理所写。2.检查编程器与目标芯片之间的连接是否良好,可以重新插拔连接线或更换连接线。3.检查目标芯片是否损坏,可以使用万用表或示波器来检测芯片的引脚是否正常。

qq_51725160的博客 4883

Zynq远程更新程序实战:从emmc到flash的完整方案解析

本文详细解析了Zynq远程更新程序的完整方案,重点探讨了从emmc到flash的实战操作。通过硬件连接限制破解、emmc配置技巧、flash擦写策略优化等关键技术点,提供了可靠的远程更新解决方案,特别适合需要频繁更新boot.bin的应用场景。

weixin_29163797的博客 179

TensorRT-LLM环境配置避坑指南:从安装到实战

本文是一份详尽的TensorRT-LLM环境配置避坑指南。文章重点解析了从Python、CUDA、PyTorch版本选择,到解决mpi4py安装这一核心难题的完整流程,并提供了经过验证的稳定版本组合与实战排错方案,帮助开发者高效部署大语言模型推理优化环境。

a0b1c2d3的专栏 983

STLink烧录时提示Target not halted?

本文深入分析嵌入式开发中常见的'Target not halted'问题,涵盖硬件设计、固件配置、调试工具链等多个层面,提供系统性排查方法与实战解决方案,帮助工程师快速定位并解决调试连接失败问题。

dream的博客 1670

嵌入式开发 DSP芯片运行方式(挖坑-填坑中-坑已平 :))

TMS320F28335 DSP 芯片 如何将运行代码放在不同的位置

FOOLCODE的专栏 1306

STM32锁住,解开方法

1、按住单片机复位键不松开;2、同时下载程序3、弹出一个窗口,选择NO4、再重新下载程序,即可。

既有随处可栖的江湖,也有追风逐梦的骁勇! 2万+

大模型时代的具身智能系列专题(二)

自由形式语言指令 L 指定了一个操作问题,例如“打开最顶部的抽屉”。然而,根据 L 生成机器人轨迹是很困难的,因为 L 可能具有任意长度,或者是不明确的(例如,需要上下文语义)。相反,我们专注于问题的各个阶段(子任务)l_i,它们明确地指定了一个操作任务 (例如,“抓住抽屉把手”,“打开抽屉”),其中被分解的子阶段(子任务)L→l1l2lnL→l1​l2​...ln​由高级规划器(例如,一个LLM或一个基于搜索的规划器)给出。

achao的专栏 2171

某AI推荐系统项目管理复盘:架构师总结的6大方法论与调优策略

我是张三,某大厂资深AI架构师,主导过5个千万级用户的推荐系统项目(覆盖电商、内容、视频、音乐、外卖等场景)。我的公众号“AI架构师笔记”会分享更多AI项目管理和技术实战经验,欢迎关注。最后的话:推荐系统不是“一锤子买卖”,而是“持续优化的过程”。希望这篇文章能帮你少踩坑,多做对——毕竟,把复杂的事做成,才是架构师的核心能力。

2501_92132293的博客 362

无废话platformio中arduino框架下esp32 flash信息修改问题

2、问题编译没有提示BUG,但是烧录总是烧录不进去。找到C:\Users\Administrator\.platformio\platforms\espressif32\boards这个路径下的upesy_wrover.json文件,打开发现upload中还是4MB,如下图所示。在1.1的路径下存放这修改flash大小的文件,default.csv、default_8MB.csv、default_16MB.csv。将default_16MB.csv复制到你的platformio项目路径下,如下图。

bjxingch的博客 2986

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

终极Marlin固件优化指南:释放3D打印机性能的7个内存管理技巧

Marlin固件是一款针对RepRap 3D打印机的优化固件,基于Arduino平台,通过合理的内存管理可以显著提升3D打印机的性能和稳定性。本文将分享7个实用的内存管理技巧,帮助你充分发挥Marlin固件的潜力。 [![Marlin固件logo](https://raw.gitcode.com/GitHub_Trending/ma/Marlin/raw/a74237306f94247aea65

gitblog_00340的博客 806

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

PlatformIO下的STM32F4xx项目配置

PlatformIO是VSCode的一个扩展, 主要面向的是嵌入式的开发, 因为VSCode的跨平台属性, PlatformIO也是跨平台的. 这里主要介绍在Ubuntu20.04下的PlatformIO环境. 其中Stm32cube 和Windows下的STM32CubeMX使用了相同的HAL库, 当前版本是1.26.2. 使用STM32CubeF4开发的项目, 用这个Framework是可以直接编译的.

IOsetting的专栏 4307
上一篇: 【marlin学习】使用platformio调试时初始化失败。调试工具配置错误。
下一篇: 【stm32】STM32F407 如何使用代码进入USB-DFU模式?
Colin Tang
博客等级 码龄8年 1805粉丝 27原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值