nebula-vscode·

vscode下使用platformio开发STM32如果将.bin文件放到工程根目录

Hugh

Hugh

185 0

步骤 1:创建 Python 脚本

在项目根目录下新建文件 copy_bin.py,内容如下:

Import("env")
import shutil
import os

def copy_bin_after_build(source, target, env):
    try:
        # 获取生成的 .bin 文件真实路径(核心代码)
        build_dir = env.subst("$BUILD_DIR")
        prog_name = env.subst("$PROGNAME")
        bin_source = os.path.join(build_dir, f"{prog_name}.bin")
        
        # 调试输出路径信息
        print(f"Debug -> 原始路径: {bin_source}")
        if not os.path.exists(bin_source):
            raise FileNotFoundError(f".bin 文件未生成: {bin_source}")

        # 复制到项目根目录
        bin_dest = os.path.join(env["PROJECT_DIR"], os.path.basename(bin_source))
        shutil.copy(bin_source, bin_dest)
        print(f"✅ 成功复制到根目录: {os.path.basename(bin_dest)}")

    except Exception as e:
        print(f"❌ 错误: {str(e)}")

# 关键:绑定到构建完成后的动作(而非中间步骤)
env.AddPostAction("buildprog", copy_bin_after_build)

步骤 2:修改 platformio.ini

在配置文件中添加一行,调用脚本:

[env:rymcu_nebulapi_f103ve]  ; 你的环境名称
platform = ststm32
board = ...                   ; 你的开发板型号
framework = stm32cube

; 添加此行,绑定编译完成后的动作
extra_scripts = post:copy_bin.py

步骤 3:重新编译

执行以下命令清理并编译:

pio run --target clean && pio run

验证结果

  1. 观察终端输出 如果成功,会看到以下信息:
    Debug -> 原始路径: .pio/build/rymcu_nebulapi_f103ve/firmware.bin
    ✅ 成功复制到根目录: firmware.bin
    
  2. 查看根目录文件 直接在 VS Code 资源管理器或终端中检查:
    ls -l firmware.bin
    

原理说明

来自DeepSeek深度思考。

相关文章

优先推荐同专题、同标签和同作者内容,补足热门文章。

评论 0

登录 后参与评论

评论

成为第一个评论的人