一、新建HelloWorld项目
- 打开VScode 文件 新建文件 :HelloWorld.ino
- 敲入代码
void setup() {
//这里开始写初始化代码,只会执行一次
// 初始化数字引脚5作为输出。
pinMode(5, OUTPUT);
}
//这里写运行代码,重复执行
void loop() {
digitalWrite(5, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(5, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
选择开发板:点击下方 select board Type 在搜索框输入ESP32C3
结果如图
下载第一个程序
使用USB线连接电脑与开发板,开发板的驱动CH340需要在电脑上安装驱动
https://www.onlinedown.net/soft/1164748.htm
烧录程序,不出意外的话,开发板 三色灯,就会蓝色闪烁了。
二、计时和延时(Timing and delays)
时间控制,基本上可以说存在于每一个项目代码中。目前在Arduino中跟时间控制有关的方法包括以下几个:
delay(ms)
暂停一个给定的毫秒数的时间间隔。
delayMicroseconds(us)
暂停一个给定的微秒数的时间间隔。
millis()
返回重启(reset)后所经过的毫秒数。
micros()
返回重启(reset)后所经过的微秒数
温馨提示
通常,我们控制LED灯闪烁都会加上一个delay延时来达到切换亮灭时间长度。
delay缺点:在给定的时间间隔内是不能做其他操作。那么有没有什么办法既能延时又能不影响其他操作呢?当然,这就是millis()的妙用,通过获取两个时间点的毫秒数,然后计算它们的差值,差值时间间隔内是可以执行其他操作的。代码片段如下:
long debouncdDelay = 60;//延时间隔
long lastDebounceTime = 0; //最近记录的一次时间
// 判断时间间隔是否大于设定的时间间隔。
if(millis()-lastDebounceTime>debouncdDelay){
lastDebounceTime = millis();
}
三、开发板IO
ESP-C3-32S-Kit 开发板模组共接出 30 个接口,如管脚示意图,管脚功能定义表是接口定义表
开发规格书下载:https://docs.ai-thinker.com/esp32c3
https://docs.ai-thinker.com/media/esp32/docs/esp-c3-32s-kit-v1.0%E8%A7%84%E6%A0%BC%E4%B9%A6.pdf
ESP32-C3 SDK中默认的管脚
C:\Users\Administrator\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.2\variants\esp32c3\pins_arduino.h
#ifndef Pins_Arduino_h
#define Pins_Arduino_h
#include <stdint.h>
#define EXTERNAL_NUM_INTERRUPTS 22
#define NUM_DIGITAL_PINS 22
#define NUM_ANALOG_INPUTS 6
#define analogInputToDigitalPin(p) (((p)<NUM_ANALOG_INPUTS)?(esp32_adc2gpio[(p)]):-1)
#define digitalPinToInterrupt(p) (((p)<NUM_DIGITAL_PINS)?(p):-1)
#define digitalPinHasPWM(p) (p < EXTERNAL_NUM_INTERRUPTS)
static const uint8_t TX = 21;
static const uint8_t RX = 20;
static const uint8_t SDA = 8;
static const uint8_t SCL = 9;
static const uint8_t SS = 7;
static const uint8_t MOSI = 6;
static const uint8_t MISO = 5;
static const uint8_t SCK = 4;
static const uint8_t A0 = 0;
static const uint8_t A1 = 1;
static const uint8_t A2 = 2;
static const uint8_t A3 = 3;
static const uint8_t A4 = 4;
static const uint8_t A5 = 5;
#endif