ESP32快速上手
- 一、开发环境搭建
- 二、基础函数及用法
- 1. **数字IO**
- 2. **模拟IO**
- 3. **串口通信**
- 4. **延时**
- 三、示例代码
- 四、学习资源
提示:以下是基于Arduino总结
如果你使用Arduino开发环境来学习ESP32,那么可以更快速地入门,因为Arduino IDE提供了更简洁的编程接口和丰富的库支持。以下为你整理的基于Arduino开发ESP32的关键知识点和常用函数用法:
一、开发环境搭建
- 安装Arduino IDE
- 从Arduino官网下载并安装Arduino IDE。
- 添加ESP32支持
- 打开Arduino IDE,进入“文件”->“首选项”。
- 在“附加开发板管理器URL”中添加以下链接:
https://dl.espressif.com/dl/package_esp32_index.json
- 打开“工具”->“开发板”->“开发板管理器”,搜索“ESP32”,并安装。
- 安装完成后,选择对应的ESP32开发板(如“ESP32 Dev Module”)。
二、基础函数及用法
1. 数字IO
-
设置引脚模式
pinMode(pin, mode);
pin
:GPIO引脚编号。mode
:INPUT
(输入模式)、OUTPUT
(输出模式)、INPUT_PULLUP
(上拉输入)、INPUT_PULLDOWN
(下拉输入)。- 示例:
pinMode(2, OUTPUT); // 将GPIO 2设置为输出模式
-
写入引脚电平
digitalWrite(pin, value);
pin
:GPIO引脚编号。value
:HIGH
(高电平)、LOW
(低电平)。- 示例:
digitalWrite(2, HIGH); // 将GPIO 2设置为高电平
-
读取引脚电平
int value = digitalRead(pin);
pin
:GPIO引脚编号。- 返回值:
HIGH
或LOW
。 - 示例:
int buttonState = digitalRead(0); // 读取GPIO 0的电平状态
2. 模拟IO
-
模拟输入
int value = analogRead(pin);
pin
:ADC引脚编号(如GPIO32
、GPIO33
等)。- 返回值:0-4095(12位ADC)。
- 示例:
int sensorValue = analogRead(32); // 从GPIO 32读取模拟值
-
模拟输出(PWM)
analogWrite(pin, value);
pin
:支持PWM的GPIO引脚。value
:0-255(8位PWM)。- 示例:
analogWrite(25, 128); // 在GPIO 25输出50%占空比的PWM信号
3. 串口通信
-
初始化串口
Serial.begin(baudRate);
baudRate
:波特率,如9600
、115200
。- 示例:
Serial.begin(115200); // 初始化串口,波特率为115200
-
发送数据
Serial.print(data); Serial.println(data);
data
:要发送的数据,可以是字符串、数字等。- 示例:
Serial.print("Hello, ESP32!"); // 发送字符串 Serial.println(123); // 发送数字并换行
-
读取数据
if (Serial.available() > 0) {char incomingByte = Serial.read(); }
Serial.available()
:检查串口缓冲区中是否有数据。Serial.read()
:读取一个字节的数据。- 示例:
if (Serial.available() > 0) {char incomingByte = Serial.read();Serial.print("Received: ");Serial.println(incomingByte); }
4. 延时
-
毫秒级延时
delay(ms);
ms
:延时时间(毫秒)。- 示例:
delay(1000); // 延时1秒
-
微秒级延时
delayMicroseconds(us);
us
:延时时间(微秒)。- 示例:
delayMicroseconds(1000); // 延时1000微秒
三、示例代码
以下是一个简单的“闪烁LED”示例代码,适用于Arduino开发环境:
const int ledPin = 2; // 定义LED连接的GPIO引脚void setup()
{pinMode(ledPin, OUTPUT); // 将GPIO 2设置为输出模式Serial.begin(115200); // 初始化串口
}void loop()
{digitalWrite(ledPin, HIGH); // 点亮LEDdelay(1000); // 延时1秒digitalWrite(ledPin, LOW); // 熄灭LEDdelay(1000); // 延时1秒
}
将这段代码复制到Arduino IDE中,选择对应的ESP32开发板和端口,然后上传到开发板。你将看到连接在GPIO 2的LED闪烁。
四、学习资源
- Arduino官方文档:Arduino官方文档提供了详细的函数参考和示例代码。
- ESP32 Arduino库文档:ESP32 Arduino库文档,涵盖了ESP32特有的功能和库。
- 社区资源:如Arduino论坛和ESP32社区,可以找到许多开发经验和解决方案。
声明:
本文为本人的学习笔记,旨在记录和分享个人在学习过程中的心得体会和原创代码。由于本人刚入门,对相关知识的理解可能还存在不足之处,文章中难免会有错误或不准确的地方。在此,我诚挚地欢迎各位读者在阅读过程中,如果发现任何问题或有其他建议,随时在评论区或通过其他方式与我交流。我将虚心听取大家的意见,及时修正和改进文章内容,以便更好地学习和成长。感谢大家的关注和支持!