前言
(1)在此,吐槽一下乐鑫的函数介绍,真的难找。恶心的一批。气死我了。
(2)接下来我将会介绍我是如何找到ESP32的Arduino平台的函数库的。你将会知道为啥我这么大的戾气。
(3)同时我将介绍一下如何点亮LED,以及做一个呼吸灯
(4)学习本文之前,需要安装好Arduino IDE和ESP32驱动。没有安装好的,请自行阅读以下教程:
esp32环境安装教程—arduino IDE;esp32CAM环境安装教程—串口驱动安装;
(5)Arduino平台的ESP32函数库介绍;
点亮LED
分析原理图
(1)我们看如下原理图,得知,LED是由GPIO33控制的。
(2)我们知道LED是共阳的,所以GPIO33输出低电平,LED1亮。GPIO33输出高电平,LED灭。
函数介绍
pinMode()
pinMode()是用于设置GPIO的模式的。
/**** 函数原型 ****/
void pinMode(uint8_t pin, uint8_t mode);
/**** 函数介绍 ****/
/* 作用 : 设置GPIO的模式
* 传入参数 :
* pin : 设置要配置的GPIO,直接输入数字即可,比如配置GPIO33,就输入33
* mode : 可选参数如下 >
INPUT (设置为无上拉或下拉(高阻抗)的输入)
OUTPUT (设置为输出)
INPUT_PULLDOWN (设置为具有内部下拉的输入)
INPUT_PULLUP (设置为带有内部上拉电阻的输入)
* 返回值 : 无
*/
digitalWrite()
digitalWrite()用于将GPIO设置为输出高电平,或者是输出低电平。
/**** 函数原型 ****/
void digitalWrite(uint8_t pin, uint8_t val);
/**** 函数介绍 ****/
/* 作用 : 设置GPIO的模式
* 传入参数 :
* pin : 设置要配置的GPIO,直接输入数字即可,比如配置GPIO33,就输入33
* val : 可选参数如下 >
HIGH (输出高电平)
LOW (输出低电平)
* 返回值 : 无
*/
delay()
这个是用于延时的。单位是ms
代码实操
LED闪烁
#define positive 1 //如果LED为共阳极,写1.如果是共阴极,写0
#if positive
#define LED_on LOW
#define LED_off HIGH
#else
#define LED_on HIGH
#define LED_off LOW
#endif
//开机启动代码
void setup() {
//pinMode
pinMode(33,OUTPUT);
}
// 死循环
void loop() {
digitalWrite(33, LED_on);
delay(1000);
digitalWrite(33, LED_off);
delay(1000);
}
呼吸灯
#define positive 1 //如果LED为共阳极,写1.如果是共阴极,写0
#if positive
#define LED_on LOW
#define LED_off HIGH
#else
#define LED_on HIGH
#define LED_off LOW
#endif
//开机启动代码
void setup() {
//pinMode
pinMode(33,OUTPUT);
}
int i=0;
// 死循环
void loop() {
for(i=0;i<=20;i++)
{
digitalWrite(33, LED_on);
delay(i);
digitalWrite(33, LED_off);
delay(20-i);
}
for(i=20;i>=0;i--)
{
digitalWrite(33, LED_on);
delay(i);
digitalWrite(33, LED_off);
delay(20-i);
}
}
查找函数介绍的过程
(1)首先,我在乐鑫官网找到技术文档。因为ESP32CAM是ESP32系列单片机,所以勾选ESP32。
(2)往下滑,找到ESP-IDF 编程指南,点击打开。
(3)在ESP-IDF 编程指南中,点击资源。然后找到,通过 Arduino 平台开发应用,请参考 ESP32、ESP32-S2 和 ESP32-C3 芯片的 Arduino 内核。
注意:这个链接是GitHub,可能需要使用魔法。
(4)打开GitHub之后,往下滑找到Documentation,在Documentation中,能够找到Libraries;点击打开。
(5)在Libraries中找到APIs即可。