LLintelligence 2024-04-14 10:59 采纳率: 0%
浏览 47

stm32cubeide编译不刷新.hex文件

问题遇到的现象和发生背景

使用stm32cubeide编译代码并使用串口烧写代码
stm32cubeide编译代码经常不更新.hex,烧写后经常是旧程序的代码

操作环境、软件版本等信息

windows7,stm32cube1.12.1

尝试过的解决方法

使用clean project和直接删除原理的.hex文件再编译,日期对上了,有时候程序烧出来还是旧程序

我想要达到的结果

每次编译后生成的.hex日期是最新的,而且还是新程序,修改后的代码。

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-14 10:59
    关注

    引自免费微信小程序:皆我百晓生

    在遇到STM32CubeIDE编译后生成的hex文件内容没有更新的问题时,可以尝试以下几个步骤来解决:

    1. 清理项目: 在STM32CubeIDE中,选择菜单栏的 Project -> Clean... ,然后点击 OK 进行项目清理。这会清除所有中间文件和目标文件,确保所有的输出都是根据最新的源代码构建的。

    2. 检查工程设置

      • 打开项目属性:Project -> Properties
      • 确保在 C/C++ Build -> Settings -> Behavior 选项卡中,勾选了 "Automatically build after a change to source code"。
      • 在同一界面的 Build Artifact Settings 标签页下,确认.hex 文件的输出路径正确,并且在列表中可以看到你的项目名对应的 .hex 文件。
    3. 重新生成hex文件: 在项目管理器(Project Explorer)中找到你的.hex文件,右键点击,选择 Rebuild 或者 Generate Hex File 来手动生成hex文件。

    4. 验证hex文件内容: 使用十六进制编辑器(如HxD、WinHex等)打开生成的.hex文件,对比一下与旧版本的差异。确保它们的内容不同。

    5. 检查硬件连接: 确保你的开发板通过USB连接到电脑,并且被正确识别。有时候,串口通信问题也可能导致程序未正确烧录。

    6. 重置或复位开发板: 在烧录新程序之前,确保你的开发板已经复位,这样它会在启动时加载新的程序。

    7. 使用其他工具进行烧录: 尝试使用STM32CubeProgrammer或其他第三方烧录工具(如ST-Link Utility)来烧录hex文件,看看是否能成功。

    8. 重启IDE和电脑: 如果以上步骤都无效,试试关闭STM32CubeIDE和电脑,然后再重新启动,看是否解决问题。

    9. 更新STM32CubeIDE: 虽然你提到的是STM32CubeIDE 1.12.1,但如果有新版本可用,考虑升级到最新版,因为可能有已知的bug修复。

    如果问题仍然存在,可能是IDE缓存或者其他未知原因。在这种情况下,你可能需要联系STM32CubeIDE的技术支持寻求更专业的帮助。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月14日

悬赏问题

  • ¥15 pycharm无法启动打开
  • ¥15 freertos中断使用队列传输后不能退出
  • ¥15 Could not find artifact io.renren:renren-dynamic-datasource:jar:5.0.0
  • ¥15 8乘8点阵显示I Love you,要求看下文
  • ¥15 uniapp地图组件show-location的方向箭偏差
  • ¥15 ntp客户端对时C语言
  • ¥15 python视觉识别调用鼠标宏驱动实现鼠标实时移动到目标人物中心,
  • ¥15 手机登录公司网站需要人脸识别,UC浏览器提示这样,有人知道解决方法吗
  • ¥15 linux命令行中的一个问题
  • ¥15 如何让 python 正确发起 http2 请求?