esp32学习笔记

前言:学习视频链接放在最后,开发方式为esp32+Arduino,使用型号为ESP32-WROOM-32,引脚功能分配图如下。

#esp32介绍

GPIO的引脚默认情况下,只能当做普通功能引脚使用,也就是只能输入,输出,如果需要使用特殊功能,就需要开启复用模式了。

单片机最小系统板,整体IO引脚引出有25个,也是够用了,通常esp32支持的开发平台有很多种,同时esp32也是支持RTOS操作系统的开发板,在ESP-IDF这个开发平台上,历程里面就有使用到操作系统。

Arduino,这个平台软件可以用来开发Arduino的开发板,Nano,Uno,同时还有一些支持Arduino平台开发的开发板,都能在这个平台开发,同时Arduino的开发方式,适合初学者,以简单好上手,出名,同时不太建议电子工程师,使用这种开发方式。

首先需要下载Arduino开发平台,这里就不演示了,直接去官网下载就可以了,连接仍在这里了,Software | Arduino

这里在初次安装过后,在开发板选项中是没有esp32的选项的,这个时候需要自己去选择源,下载esp32类似于KEIL5中pack文件,也就是器件包的东西吧,下载之后工具选项就能选择esp32开发板了

这里就不演示了,连接如下,按着个教程安装就好了。ESP32使用Arduino环境,安装、编译、下载、安装库_arduino esp32_esp32 arduino-CSDN博客

在Arduino,开发平台中,void setup(){}这个循环用来防止,运行程序的引脚初始化,也就是程序进行死循环之前的准备条件。

setup(){}这个循环结束之后,会进入loop这个循环,是一个死循环进入之后就会一直运行,知道程序结束。

#常用函数

cpp 复制代码
pinMode(pin, mode): 用于配置数字引脚的输入或输出模式。pin 是数字引脚的编号,mode 是要设置的模式(输入或输出)。
digitalWrite(pin, value): 用于在数字引脚上写入数字值(HIGH 或 LOW)。pin 是数字引脚的编号,value 是要写入的值。
digitalRead(pin): 用于读取数字引脚上的数字值(HIGH 或 LOW)。pin 是数字引脚的编号。analogRead(pin): 用于读取模拟引脚上的模拟值(0-1023)。pin 是模拟引脚的编号。
analogWrite(pin, value): 用于在支持 PWM 输出的数字引脚上输出模拟值(0-255)。pin 是数字引脚的编号,value 是要输出的值。
delay(ms): 用于在程序中创建暂停(延迟)时间。ms 是要延迟的毫秒数。
millis(): 返回自启动以来的毫秒数,可以用于时间跟踪和计时器。
Serial.begin(baud): 用于初始化串口通信,其中 baud 是波特率。Serial.print(data): 用于将数据打印到串口监视器。data 可以是数字,字符串或其他数据类型。
Serial.available(): 用于检查是否有数据可以从串口读取。

上面这些函数,用在GPIO的设置输入输出,串口,还有PWM的输出,还是比较简单好用的跟STM32比较起来。

cpp 复制代码
#define   LED  12
void setup() {
  // put your setup code here, to run once:
  pinMode(LED,OUTPUT);
  digitalWrite(LED,HIGH);

}

void loop() {
  // put your main code here, to run repeatedly:

}

这里初始化引脚之后,接入LED灯模块之后,验证烧录一下代码,烧录代码的同时需要按住BOOTO按键进入BootoLoader模式,这个模式才能使用Typec进行下载,同时需要选择对的串口,串口没有选择正确也会报错。

#点亮LED灯

然后加点延时,稍微改动一下函数,烧录过后就能闪烁了。

cpp 复制代码
#define   LED  12
void  LED_Mode(void);
void setup() {
  // put your setup code here, to run once:
  pinMode(LED,OUTPUT);
  digitalWrite(LED,HIGH);

}

void loop() {
  // put your main code here, to run repeatedly:
  LED_Mode();
}

void  LED_Mode(void)
{
pinMode(LED,OUTPUT);
digitalWrite(LED,HIGH);
delay(1000);
digitalWrite(LED,LOW);
delay(1000);
}

欢迎指正,希望对你,有所帮助!!!

2023年最新 ESP32 Arduino 教程(持续更新中)_哔哩哔哩_bilibili

相关推荐
学电子她就能回来吗3 分钟前
LeetCode Hot 100|普通数组专题学习笔记(零基础版)
笔记·算法·leetcode
2601_965384265 分钟前
从微生态与流体力学视角看:“口水臭”的系统级成因与清洁边界
经验分享·笔记
卿卿的产品经理日记1 小时前
【AI产品经理实战】Day 38|try-except 踩坑实录:报错是数据
人工智能·笔记·python·学习·产品经理
keyipatience1 小时前
TypeScript学习(1)
前端·javascript·学习·typescript·html·css3
lazy H2 小时前
【计算机网络】第 2 篇:一条数据如何穿过网络?彻底理解数据封装与解封装
网络·经验分享·后端·学习·计算机网络
我命由我123452 小时前
软件工程概念 - 可插拔性
java·后端·学习·java-ee·系统架构·软件工程·学习方法
kkkkkkkkkk_Z3 小时前
新手自学嵌入式 | 学习日记:I2C总线协议、时序分析、读写流程与代码实现
学习
NetX行者4 小时前
Rust 初体验:一个全栈工程师的编译器“毒打“笔记
开发语言·笔记·rust
热爱生活的五柒5 小时前
zotero能导入已经下载好的pdf文件嘛,并且点击条目时,能直接看到下载的pdf文件嘛,我还希望能在里面做笔记
笔记·pdf
鬼手点金5 小时前
构建有效 Agent 的核心原则
java·人工智能·git·学习·自动化