最近我要使用ESP32来做一些有意思的东西,我是真的喜欢这款MCU,尤其是Stm32被炒的天价之后。

但我不太喜欢使用 Arduino IDE,那个实在是太简陋了,写起来总是莫名其妙的样式Bug,有意思的是VSCode支持了这个插件,这就太方便我使用了。

搭建开发环境

安装PlatformIO

首先就是安装VSCode,太简单了,一直点下一步就行,这里就不展示了。

主要是需要装插件,直接搜索PlatformIO,就能直接搜到,找到后就直接安装。

2021-9-25_15-53-47

需要稍微等等,因为会安装一些其他东西。在等待的过程中,建一个文件夹,这是用来存放程序的位置。

安装完后会没有反应,这时候需要重启一次VSCode才会有以下图标。

2021-9-25_15-59-31

点开这个图标后找到platforms,稍微等等,第一次进入有点慢。然后在project中点击Create New Project就可以创建新的项目。

2021-9-25_16-04-18

接下来填一下自己的一些东西,板子选项选择自己的板子就行,我使用的是最普通的板子,我就选择了如图的板子型号。

注意有一个打勾选项,还记得刚才创建了一个文件夹吗,就把路径定位到那里,当然也可以默认,就是以后不好找到的。

2021-9-25_16-08-23

然后点击Finish等待创建项目即可,这个时间会非常的漫长,因为需要下载相关的源文件,有几百兆,而且还是国外服务器(科学上网会快一点的)。

然后会出现下图的界面说明已经创建成功,下一次就不会再等了,因为这一次安装了所有的库。

2021-9-25_16-17-17

目录介绍

我简单介绍一下这个库目录中的一些文件。

  • 创建好后的界面是platformio.ini,这是一个配置文件
  • .pio文件夹是一些编译后的文件。
  • .vscode是vscode的一些配置。其中,c_cpp_properties.json可以添加一些自己的源文件,这样vscode就会直接编译。
  • include放入自己的头文件。
  • lib放入自己的库。
  • src中有个main.cpp是主程序,程序会在这里运行。

测试

写个简单的程序测试一下,老规矩,点灯!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <Arduino.h>

#define LEDPIN 2

void setup() {
// put your setup code here, to run once:
pinMode(LEDPIN, OUTPUT);

}

void loop() {
// put your main code here, to run repeatedly:
dacWrite(LEDPIN, HIGH);
delay(1000);

dacWrite(LEDPIN, LOW);
delay(1000);

}

然后就可以直接编译和下载,分别是下图中的选项。

2021-9-25_16-32-48

注意:我这块板子没有自动下载电路,需要按着boot键来重新启动才能下载进去。

快捷键也可以的:

  • 编译:Ctrl + Alt + B
  • 下载:Ctrl + Alt + U

ESP32引脚

这里我简单列出一下ESP32的引脚,一般会购买到下图的ESP32模组,所以下图会很直观的写出每个引脚的作用。

ESP32mod

或者更多购买的会是以下的开发板,我购买的就是这个。

ESP32Board

几乎每个引脚都有自己的功能,我列出了这些引脚的主要功能:

list

由此可见,虽然引脚是很多,但并不是所有的引脚都能使用。以下是对每个引脚的使用情况:

  • 绿色突出显示的引脚是可以使用的。
  • 用黄色突出显示的是可以使用的,但您需要注意,因为它们可能主要在引导时出现意外行为。
  • 红色突出显示的引脚不建议用作输入或输出。

2021-9-26_16-08-51