01 简介

在ESP32项目开发过程中,我们总会遇到管理多版本代码,或者需要一个test环境。

根据开发框架,main.cpp 文件在 src 文件夹中,最土的办法是通过修改注释、复制文件等操作管理不同的版本。但是这些方法十分繁琐,都很容易出错。

想要解决上面的问题,可以在 platformio.ini 中配置,构建多个main函数入口。

02 解决方法

platformio.ini 中配置,示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[env]
platform = espressif32
framework = arduino
board = esp32-s3-devkitc-1
lib_ignore = examples
monitor_speed = 115200
board_build.f_cpu = 240000000L

build_src_filter =
+<*.h>
-<.git/>
-<.svn/>
+<shared/>
+<${PIOENV}/>
+<main-${PIOENV}.cpp>

lib_deps =
Spi
Wire

build_flags =
-D OTA_ENABLE=flase
-D RX2=14
-D TX2=12

[env:base]
lib_deps =
${env.lib_deps}
adafruit/Adafruit PWM Servo Driver Library@^3.0.1

build_flags =
${env.build_flags}
-D BASE

[env:test]
lib_deps =
${env.lib_deps}

build_flags =
${env.build_flags}
-D TEST

然后,在烧录时,可以选择不同的环境,里面的代码和依赖可以不同。