如何在VScode+PlatformIO中使用STM32CubeIDE的工程?

VScode + PlatformIO

VScode是一款由微软开发的免费、跨平台的源代码编辑器,可用于开发各种编程语言,如Python、C/C++,Verilog HDL等。它提供了丰富的功能和插件,如代码补全、调试、版本控制等,使得开发者能够更加高效地进行编码工作。VScode也是一款非常流行的代码编辑器,广泛用于开发人员的日常工作中。

PlatformIO是一个开源的跨平台物联网开发生态系统,旨在为开发者提供一个统一的平台来编译、调试和上传程序到不同的嵌入式设备上。它支持各种流行的开发板和芯片平台,如Arduino、ESP8266、ESP32、STM32等。PlatformIO提供了一个集成式开发环境,包括IDE和命令行工具,并且具有丰富的功能,如库管理器、调试工具、内存检查、代码分析等,使得嵌入式开发更加容易、高效和可靠。同时,PlatformIO还提供了一个强大的社区支持和文档,以帮助开发者更好地使用它的工具和平台。

安装

无论是Windows(8,10,11),Linux(Debian,Ubuntu,Red Hat,CentOS,Fedora,SUSE),还是Mac (macOS 10.11+),都可以通过下载VScode安装包进行安装。也可通过源进行安装,Linux下通过源的步骤详见这里

安装完成后,以插件形式安装PlatformIO,安装流程详见这里,注意如果安装过程出奇的慢,可能需要科学上网工具。

Ubuntu系统在安装platformIO插件时会遇到报错,预先执行如下命令:

sudo apt-get install python3-venv

STM32CubeIDE

STM32CubeIDE是STMicroelectronics公司提供的一款集成开发环境(IDE),旨在为STM32系列微控制器的开发提供全面的支持。STM32CubeIDE基于Eclipse平台,提供了丰富的功能和工具,如代码编辑器、编译器、调试器、版本控制、模拟器等,支持多种编程语言,如C、C++等。此外,STM32CubeIDE还集成了STMicroelectronics提供的STM32Cube软件包,包括HAL库、LL库、CMSIS等,以及各种板级支持包(BSP),可大大简化STM32开发的过程。STM32CubeIDE具有易用性和高效性,可以帮助开发者快速开发STM32系列微控制器的应用程序。

通过STM32Cube软件,调整单片机时钟频率,开启DMA,加入FreeRTOS支持等等都可以通过动动鼠标完成,完全不用关心底层外设如何初始化的问题,用起来真香。
真香

安装

目前发现在CentOS7.9系统下安装的STM32CubeIDE由于glib版本过低(GLIBC_2.27 not found),无法编译工程,比较遗憾。
Ubuntu20和22都OK。如果是使用WSL+Ubuntu,如果启动工程后只有白色的空界面,还需额外执行:

sudo apt install libwebkit2gtk-4.0-dev

然后将每次启动stm32cubeide之前执行export GDK_BACKEND=x11

VScode + PlatformIO + STM32CubeIDE

但是本人不是太喜欢Eclipse,于是就有一个疑问,如何在VScode + PlatformIO环境下优雅地使用STM32CubeIDE?基本思路是将STM32CubeIDE的工程文件夹放到PlatformIO工程的src文件夹下,然后修改platformio.ini文件,添加对宏定义,头文件路径,link文件的描述即可。具体的描述其实也在STM32CubeIDE的Project->Properties->C/C++ Build/Settings/Tool Settings/All options里体现。这样即使用VScode接手工程开发后,如果还想用添加其他外设,依然可以使用STM32CubeIDE的图形界面进行修改。

具体步骤如下:

  1. 使用PlatformIO创建工程,这里以STM32F103C8T6为例。

    • 在Visual Studio Code中打开PlatformIO IDE。单击“PlatformIO”图标并选择“PIO Home”。
    • 如果还没安装ST的支持包,可以点击Platforms标签页,查找ST STM32并安装。
    • 在PIO Home中,单击“New Project”按钮。在弹出的对话框中,输入项目名称,并选择STM32F103C8。
      这里Framework可选项包括Arduino,CMSIS,STM32Cube,libopencm3。Framework描述详见这里,不过我们并不用PlatformIO自带的任何框架,但是后面用STM32CubeIDE创建工程时需要一个空的src文件夹,故不建议选Arduino和CMSIS(它们会自动生成main.cpp到src文件夹)
      Location项提供工程的父目录
  2. 使用STM32CubeIDE创建工程,工程路径设置为前文的src文件夹。进行必要的配置并保存。

  3. 编辑platformio.ini文件,示例如下:

    [env:genericSTM32F103C8]
    platform = ststm32
    board = genericSTM32F103C8
    
    build_flags = 
        -DUSE_HAL_DRIVER
        -DSTM32F103xB
        -Isrc/Core/Inc
        -Isrc/Drivers/STM32F1xx_HAL_Driver/Inc/Legacy
        -Isrc/Drivers/STM32F1xx_HAL_Driver/Inc
        -Isrc/Drivers/CMSIS/Device/ST/STM32F1xx/Include
        -Isrc/Drivers/CMSIS/Include
        -Isrc/Middlewares/Third_Party/FreeRTOS/Source/include
        -Isrc/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS
        -Isrc/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM3
    
    board_build.ldscript = ./src/STM32F103C8TX_FLASH.ld
    

最后build。

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值