STM32开发环境配置——VSCode+PlatformIO + CubeMX + FreeRTOS的集成环境配置

发布于:2025-05-24 ⋅ 阅读:(10) ⋅ 点赞:(0)

前言
为什么配置这样的一个环境呢?鄙人受够了Keil5那个简陋的工作环境了,实在是用不下去,调试上很容易跟CubeMX的代码产生不协调导致调试——发布代码不一致造成的一系列问题。CubeIDE虽说不错,但是它的代码辅助功能和构建系统实在不敢恭维,经常出现Makefile未同步导致符号定义冲突,亦或者是埋下了潜在的程序bug。

也有人尝试使用Keil Assistance + VSCode + Keil分工写代码与烧录,这听起来不错,但是调试并不方便,常常要来回奔波,实在是有些麻烦。这里我们尝试新兴的PlatformIO来辅助我们进行嵌入式的开发。

一、PlatformIO介绍:

PlatformIO 是一个跨平台的开源 IDE(集成开发环境)和构建系统,专门为嵌入式开发设计。它支持多种嵌入式平台和框架,尤其适合用于开发基于 ArduinoESP32STM32Raspberry Pi 等硬件的应用程序。PlatformIO 提供了一整套工具,用于嵌入式软件开发的各个方面,包括编译、调试、测试、库管理、代码补全、版本控制等。

1、主要特点

  1. 多平台支持: PlatformIO 支持多种主流的嵌入式开发平台和微控制器架构,包括但不限于:

    • Arduino(各种 Arduino 板)
    • ESP32/ESP8266
    • STM32
    • Raspberry Pi
    • Atmel AVRARM Cortex-MTI MSP430 等多种芯片架构。
  2. 跨平台开发: PlatformIO 可以在多种操作系统上运行,包括:

    • Windows
    • macOS
    • Linux
  3. 集成开发环境(IDE)

    • PlatformIO 可以与多种 IDE 配合使用,最常见的是 VS Code。它为开发者提供了功能强大的代码编辑、自动补全、智能感知、版本控制等功能。
  4. 构建系统和库管理

    • 构建系统:PlatformIO 提供了一种简化的构建系统,可以跨平台编译代码并进行优化。
    • 库管理:PlatformIO 内置了一个库管理器,可以轻松地下载、更新、管理和集成各种开源库。
    • 版本控制:它支持 Git,方便代码的版本控制和团队协作。
  5. 多种嵌入式框架支持: PlatformIO 支持多种常用的嵌入式开发框架,例如:

    • Arduino
    • FreeRTOS
    • ESP-IDF(用于开发 ESP32)
    • Zephyr
    • mbed
    • CMSIS
    • ChibiOS 等。
  6. 自动化测试与CI/CD支持: PlatformIO 支持自动化测试,能够通过集成测试框架(如 Unity 和 Catch)进行单元测试,帮助开发者提高代码质量。此外,PlatformIO 还可以与持续集成(CI)工具如 Jenkins、Travis CI 等结合使用。

  7. 调试支持: PlatformIO 提供了对多种硬件平台的调试支持,能够进行单步调试、变量观察、堆栈跟踪等操作。支持多种硬件调试器,如 J-LinkST-LinkCMSIS-DAP 等。

  8. 高级功能

    • Remote Development:支持远程开发,可以通过 SSH 等方式连接到远程设备进行开发和调试。
    • 固件上传:支持多种方式上传固件到目标设备,包括 USB、串口、OTA(无线上传)等。
    • 本地和云编译:除了本地编译外,PlatformIO 还支持使用云服务进行编译,方便不同开发环境间的协作。

2、PlatformIO 的安装与使用

参考VSCode 下 PlatformIO 的安装教程-CSDN博客

这篇文章包括了修改python的环境变量,使用自定义版本的python。

二、使用STM32CubeMX生成带FreeRTOS的工程

参考STM32CubeMX配置生成FreeRTOS项目_stm32cubemx freertos-CSDN博客

我这里已经生成好了,最后一步IDE选择生成Makefile

文件目录如图:

其他文件是添加到platformio工程生成的文件

三、使用VScode中的platformIO插件导入项目

1、新建工程

2、选择项目名称和文件路径以及添加使用的芯片

3、点击下面的finish,等待导入完成,目录如下

4、修改platformio.ini文件配置,目的是添加RTOS库和项目源文件、头文件

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html

[env:genericSTM32F103VE]
platform = ststm32
board = genericSTM32F103VE
framework = stm32cube

lib_extra_dirs = Middlewares\Third_Party\FreeRTOS\Source

build_flags = -IHardWare

[platformio]
src_dir = Core/Src
include_dir = Core/Inc

lib_extra_dirs = Middlewares\Third_Party\FreeRTOS\Source  添加RTOS库文件路径

四、编译、下载

编译通过!!!


网站公告

今日签到

点亮在社区的每一天
去签到