【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

期末求生指南:手把手教你用浏览器开发者工具绕过百一测评切屏检测

本文详细介绍了如何利用浏览器开发者工具绕过百一测评的切屏检测功能。通过分析JavaScript事件监听机制,定位关键检测代码,并提供实时调试和本地覆盖两种修改方法,帮助学生在遵守规则的前提下更灵活地应对在线考试。文章还包含风险控制和替代方案等实用建议。

weixin_28698059的博客 548

jason-2卫星介绍及其数据下载

两台仪器发射脉冲宽度均为105.6μs,带宽320MHz(C频段)和320/100MHz(Ku频段),脉冲重复频率1800Hz(Ku频段)和300Hz(C频段),功率78W,数据传输速率22.5kbit/s。共发射了3颗卫星(Jason - 1/2/3),星上有效载荷均主要为雷达高度计和微波辐射计。Jason - 1卫星主要有效载荷为波塞冬 - 2和“贾森微波辐射计”,Jason - 2卫星进行了改进,主要携带了波塞冬 - 3和先进微波辐射计,此外,Jason - 2卫星还携带了“多里斯”系统。

beautyaaaa的博客 1606

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

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

d736243358的博客 584

Windows 2008 R2虚拟机跑金蝶K3 WISE 12.1的5个关键配置细节(附避坑清单)

本文详细介绍了在Windows Server 2008 R2虚拟机中部署金蝶K3 WISE 12.1的5个关键配置细节,包括服务器角色与账户权限、组件服务调优、数据库与中间层协同部署、补丁管理策略及性能优化工具。这些实战经验可帮助企业IT团队避免常见陷阱,确保ERP系统稳定运行。

weixin_30847939的博客 318

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

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

qq_51725160的博客 4883

上位机图像处理和嵌入式模块部署(开篇)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 图像处理是现实生活当中很实用的一门技术。工业上一般采用的是机器视觉,以传统算法和光源控制为主,部分采用了深度学习技术。而生活当中,则主要以二维码识别、人脸识别、车牌识别和ocr识别为主,这中间深度学习与AI扮演了很重要的角色。过去,市场上的商业收费软件,主要还是以传统设备厂商提供的上位机软件为主,那这一部分是不是结合最新的npu技术,应该做出一些新的东西出来呢?

嵌入式-老费,一个分享专业嵌入式知识的blog 1334

CANFD加速是什么?和CANFD有什么区别?

在使用CAN设备上位机的时候,已经选择了CANFD,但还有一个选项是“CANFD加速”,那CANFD加速和不加速有什么区别呢?刚接触CANFD小伙伴肯定一脸懵,本篇主要是给大家分享一下他们的区别,如果对你有帮助,请转发,收藏,点赞💐🎉👍😊

汽车电子软件领域知识分享 1033

STLink烧录时提示Target not halted?

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

dream的博客 1670

用 Claude Code 快速摸清一个陌生代码库

摘要:Claude Code作为AI编码助手,能帮助开发者快速理解陌生代码库。与传统代码搜索不同,它从项目根目录出发,通过分析目录结构、配置文件等技术栈信息,提供系统级的概览。最佳实践是先通过"give me an overview"获取整体架构,再深入数据模型、认证流程等核心模块。它能生成术语表、编码规范和推荐的代码阅读路径,极大降低新成员的学习成本。相比传统方式,Claude Code能主动探索项目上下文,无需人工整理相关文件,使代码理解过程更接近有经验的工程师带教。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 91

STM32锁住,解开方法

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

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

汽车行业OTD业务模式入门学习

本文是在学习彭俊松老师的《汽车行业整车订单交付系统》后,对于OTD理解的一些摘录,供诸位参考学习。

qq_40664711的博客 1万+

无人机威胁检测(Hostile Drone Detection)——基于YOLOv10与UI界面的实现

Anti-UAV数据集由多种场景下的无人机视频与图片组成,包含无人机目标的多样化姿态、背景、光照变化,专门用于反无人机检测研究。YOLO(You Only Look Once)系列是当前流行的实时目标检测算法,具有速度快、精度高的特点。网络结构优化:更深更轻的主干网络,提升特征提取能力。检测头改进:多尺度特征融合,更好检测小型目标如无人机。训练技巧:使用自动混合精度训练(AMP)、数据增强、标签平滑等技术。

YOLO 230

无废话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

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

终极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

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

PlatformIO下的STM32F4xx项目配置

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

IOsetting的专栏 4307

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: 【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、付费专栏及课程。

余额充值