通过代码配置PlatformIO生成HEX文件

  如果要通过串口给51或者32等单片机烧写程序,很多时候需要HEX文件。Keil软件中就有输出HEX文件的设置,勾选一下就行,但是,PlatformIO好像还没这么方便的操作,下面我以STM32工程为例,介绍一下如何通过代码配置PlatformIO生成HEX文件。
通过代码配置PlatformIO生成HEX文件_第1张图片
首先,在工程目录下新建extra_script.py文件(和platformio.ini在同一目录下),代码如下:

Import("env")

env.AddPostAction(
    "$BUILD_DIR/${PROGNAME}.elf",
    env.VerboseAction(" ".join([
        "$OBJCOPY", "-O", "ihex", "-R", ".eeprom",
        "$BUILD_DIR/${PROGNAME}.elf", "$BUILD_DIR/${PROGNAME}.hex"
    ]), "Building $BUILD_DIR/${PROGNAME}.hex")
)

然后,在VS Code左侧项目列表打开platformio.ini文件,在最后一行增加如下代码:

extra_scripts = extra_script.py

我的platformio.ini完整如下:

[env:genericSTM32F103C8]
platform = ststm32
board = genericSTM32F103C8
framework = arduino
extra_scripts = extra_script.py

OK,配置完成,可以点击VS Code底部的“对勾”按钮进行编译了,编译成功就会生成HEX文件,生成路径如下:
通过代码配置PlatformIO生成HEX文件_第2张图片

你可能感兴趣的:(通过代码配置PlatformIO生成HEX文件)