0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ESP32的接口不能随便用,如何快速从Arduino过渡到ESP32的新手指南-进阶篇

伊娃老师来了 来源:伊娃来了 作者:伊娃来了 2023-12-12 15:54 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

进阶篇

接续如何快速从Arduino过渡到ESP32的新手指南-基础篇,继续了解ESP32的各种引脚接口吧!

beccbb68-9584-11ee-8850-92fbcf53809c.jpg

内容介绍

1.SPI引脚

2.I2C引脚

3.UART引脚

4.RTC引脚

5.Strapping引脚

6.EN引脚

SPI引脚

引脚名称 对应脚位
VSPI_MOSI 23
VSPI_MISO 19
VSPI_CLK 18
VSPI_CS 5
HSPI_MOSI 13
HSPI_MISO 12
HSPI_CLK 14
HSPI_CS 15
CS 2

bed290b0-9584-11ee-8850-92fbcf53809c.jpg

SPI是什么

SPI(串行外设接口)是一种用于设备之间连接的技术。通过SPI,ESP32可以与其他同样使用SPI连接的传感器相互传输数据。

SPI的传输采用同步的时间线,也称为共享时钟信号,这有助于确保传输的数据准确一致。

SPI主要应用于需要短距离、高速串行通信的场景,例如需要快速同步数据的显示屏、SD卡读取器、加速度传感器等。

可以将SPI想象成一种精密的对话方式,其中主设备(ESP32)和 从设备(传感器、显示屏等)在共同的时钟引导下,按照特定的规则交流信息。

在SPI通信中,通常有四个信号线:

1. MOSI(Master Out Slave In):主设备向从设备发送数据的线路。

2. MISO(Master In Slave Out):从设备向主设备发送数据的线路。

3. SCLK(Serial Clock):时钟信号,用于同步主设备和从设备之间的数据传输。

4. SS/CS(Slave Select/Chip Select):选择从设备的线路,用于告诉从设备何时准备好接收或发送数据。

SPI使用注意

避免冲突

当我们涉及到使用引脚时,尤其是在处理不是SPI接口的设备时,建议尽量避免直接使用SPI接口。这主要是因为在引入库的过程中,通常会默认使用SPI接口的一些关键引脚,比如SCLK、MOSI、MISO,这些引脚通常会被预设为SPI功能,可能导致冲突。

可自定义SPI引脚

在ESP32中,你可以通过代码调整SPI接口的配置,包括更改SCLK、MOSI、MISO等引脚。这为你提供了更大的灵活性,以适应不同的硬件连接需求。

可共用引脚

如果你需要同时连接多个SPI接口的设备,可以共用SCLK、MOSI、MISO这些引脚,然后通过单独的CS引脚来区分不同的设备。

VSPI和HSPI的选择

在ESP32中,VSPI和HSPI是两个可用的SPI接口,它们的功能是相同的。一些库可能默认使用其中一个,多数是VSPI。

I2C引脚

bedea22e-9584-11ee-8850-92fbcf53809c.jpg

I2C是什么

I2C(Inter-Integrated Circuit)与SPI类似,也用于跟各种设备进行沟通。

设备彼此沟通的规则,我们通常会称呼为串行通信协议

I2C使用注意

I2C引脚

I2C只需要两个引脚,不管连接几个I2C设备都是使用SDASCL。这使得它在连接多个设备时非常方便,因为它占用的引脚相对较少。

I2C 与 SPI 的 SDA 不一样

• SPI的SDA:在SPI通信中,SDA通常指的是MOSI(Master Out Slave In),全称是"Master Out Slave In",表示主设备输出数据给从设备。

• I2C的SDA:在I2C通信中,SDA表示Serial Data Line,全称是"Serial Data Line",表示是用于双向传输数据的串行数据线。

I2C 与 SPI 的 SCL 不一样

• SPI的SCL:在SPI通信中,时钟线通常称为SCLK(Serial Clock),全称是"Serial Clock"。SCLK用于同步数据的传输,主设备通过SCLK向从设备发送时钟脉冲,以确保数据的有效传输。

• I2C的SCL:在I2C通信中,SCL表示Serial Clock Line,全称是"Serial Clock Line"。I2C总线上的SCL同样用于同步数据传输,主设备通过SCL向从设备发送时钟信号。

如果一个设备使用I2C协议进行通信,那么它的SCL和SDA线就应该连接到I2C总线上。同样,如果一个设备使用SPI协议进行通信,那么它的SCLK、MISO、MOSI等线就应该连接到SPI总线上。这两者的线不能直接互连,否则通信将无法正常进行

UART引脚

beee058e-9584-11ee-8850-92fbcf53809c.jpg

UART是什么

UART代表通用异步收发器(Universal Asynchronous Receiver/Transmitter)。与SPI、I2C一样,是一种串行通信协议。

然而,与它们不同的是,UART没有共享的时钟信号。在UART通信中,发送和接收设备之间通过起始位、数据位、校验位和停止位来协调数据的传输。

可以理解为,

• UART:通过相对的时间来同步信息

• SPI、I2C:通过绝对的时钟信号来确保通信的同步。

在UART中,设备之间通过约定好的位序列来解释和同步数据。这种异步的方式使得UART更加灵活,适用于一些不需要严格时钟同步的场景。

UART使用注意

简单来说,只用UART2,UART0不能用

UART0

USB连接,通常用于烧录(flashing)和调试。

UART2

UART2可以连接到外部设备,如GPS、指纹传感器、距离传感器等,而不会影响烧录和调试功能。

RTC引脚

bef7dba4-9584-11ee-8850-92fbcf53809c.jpg

RTC是什么

当我们使用 RTC(Real-Time Clock,实时时钟)时,它实际上是一个独立的时钟系统。无论主电源是否关闭,RTC 都能够持续供电,确保设备能够在断电状态下仍然维持准确的时间。

在ESP32,我们通过RTC来唤醒待机状态的设备来达到省电的功能。

在ESP32等设备上,利用RTC来唤醒待机状态是一种常见的省电策略。待机状态(或深度睡眠)是一种极低功耗的模式,其中主处理器被关闭,但RTC仍在运行,以确保设备能够在预定的时间唤醒。这对于周期性地执行任务、定时采集数据或在特定事件发生时唤醒设备都是非常有用的。

一些常见的应用场景包括:

•定时唤醒:在预定的时间唤醒设备以执行特定的任务,例如数据采集、通信等。

•事件触发唤醒:当某些特定事件发生时,通过RTC唤醒设备,以便立即响应该事件。

•电池供电设备的省电模式:在电池供电的设备中,RTC的使用可以帮助最小化功耗,延长电池寿命。

Strapping 引脚

bf040ba4-9584-11ee-8850-92fbcf53809c.jpg

在ESP32中,存在两种重要的模式,分别是BOOT模式FLASH模式BOOT模式用于运行ESP32上的程序,而FLASH模式用于上传程序到ESP32。Strapping pins(引脚配置开关)用于配置ESP32的工作模式。通常情况下,带有内置USB/Serial的开发板会自动将这些引脚配置到正确的状态,以支持烧录或启动。然而,如果其他设备使用这些引脚,可能会导致ESP32进入错误的模式。

具体而言,Strapping pins是一组用于配置启动模式的引脚。在带有内置USB/Serial的开发板上,系统会根据需要自动配置这些引脚。但是,当其他设备使用相同的引脚时,可能会影响ESP32的启动模式,因此在设计硬件连接时需要特别注意。

EN引脚

bf11b2c2-9584-11ee-8850-92fbcf53809c.jpg

对于ESP32,EN(Enable)引脚是用于控制芯片的启用和禁用的关键引脚。以下是关于EN引脚的一些基本信息:

•默认状态:EN引脚默认是拉高的(pulled high),表示芯片处于启用状态。当EN引脚被拉高时,ESP32可以正常运行。

•拉低禁用:当EN引脚被拉低时,芯片被禁用,即停止工作。拉低EN引脚通常会导致芯片断电或进入低功耗模式,具体取决于系统的设计。

•复位功能:EN引脚还连接到一个按钮开关,通过按下按钮将EN引脚拉低,可以触发芯片的复位(reset)操作。这个按钮提供了一种手动重置芯片的方式。

拉高:给引脚高电位,拉低:给引脚低电位

总体而言,EN引脚提供了对ESP32芯片的启用和禁用控制,同时允许通过按钮触发复位。这是在开发和测试过程中非常有用的功能,因为它允许用户手动重置芯片,或者在需要时禁用芯片以减小功耗。

错误更正说明

ESP32 WROOM-32上传选择

当使用Arduino IDE上传程序到ESP32开发板时,对于常见的ESP32开发板,例如ESP32 WROOM-32,你可以在Arduino IDE中选择"ESP32 Dev Module"进行上传。这个开发板型通常是Arduino IDE默认支持的。

在先前的文章中使用的"ESP32 WROOM DA"选项是针对另一种ESP32模块的开发板。

bf25300e-9584-11ee-8850-92fbcf53809c.jpg虽然使用"ESP32 WROOM-32"开发板也能成功选择"ESP32 WROOM DA"上传,这可能是因为在Arduino IDE的"esp32"支持包中,"ESP32 WROOM-32"也有相应的支持。

因此,最终建议在使用ESP32 WROOM-32开发板时,选择"ESP32 Dev Module",以确保在Arduino IDE中有更全面的支持和兼容性。这样能够更方便地进行开发和调试,确保代码能够正确地烧录到ESP32开发板上。

bf309106-9584-11ee-8850-92fbcf53809c.png

后续我会继续分享零基础入门ESP32的教学文章,

也欢迎关注我的视频号与B站:伊娃老师来了。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    9443

    浏览量

    156112
  • Arduino
    +关注

    关注

    190

    文章

    6514

    浏览量

    195912
  • ESP32
    +关注

    关注

    24

    文章

    1082

    浏览量

    20837
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ESP32­WROOM­32 技术规格书

    电子发烧友网站提供《ESP32­WROOM­32 技术规格书.pdf》资料免费下载
    发表于 11-11 17:27 0次下载

    低成本开源!乐鑫科技ESP32-S3开发板轻松驱动无刷电机,保姆级教程来了!

    想用ESP32-S3开发板驱动无刷电机却不知从何下手?本教程将手把手教你完成硬件连接到软件编程的全流程,无论你是新手还是有一定经验的开发者,都能轻松掌握!本教程代码已全部开源!后台私信关键词
    的头像 发表于 11-06 18:03 235次阅读
    低成本开源!<b class='flag-5'>用</b>乐鑫科技<b class='flag-5'>ESP32</b>-S3开发板轻松驱动无刷电机,保姆级教程来了!

    乐鑫ESP32-C6和ESP32-C61究竟该如何选择?一文读懂本质区别

    乐鑫科技推出的ESP32-C6和ESP32-C61均支持Wi-Fi6,但定位不同。ESP32-C6是多协议枢纽,集成Wi-Fi6、蓝牙5、Zigbee和Thread,适合智能家居网关和Matter
    的头像 发表于 10-28 14:17 1269次阅读
    乐鑫<b class='flag-5'>ESP32</b>-C6和<b class='flag-5'>ESP32</b>-C61究竟该如何选择?一文读懂本质区别

    专为 ESP32-P4C5 核心板打造的高效开发利器

    SDK+详尽文档,新手秒上手,高手效率翻倍!双芯片设计,释放澎湃性能ESP32-P4C5核心板采用乐鑫科技的ESP32-P4+ESP32-C5双芯架构!·ESP32-P
    的头像 发表于 08-11 18:19 907次阅读
    专为 <b class='flag-5'>ESP32</b>-P4C5 核心板打造的高效开发利器

    ESP32-运行网页服务器(Web Server)-实用

    在前一文章《ESP32-运行网页服务器(WebServer)-入门》,我们介绍了ESP32运行网页服务器(WebServer)的原理,然后我们基于
    的头像 发表于 07-28 18:05 2785次阅读
    <b class='flag-5'>ESP32</b>-运行网页服务器(Web Server)-实用<b class='flag-5'>篇</b>

    ESP32-P4-MINI开发板开箱和上手指南来了!速速码住!

    上期“梦中情板”ESP32-P4-MINI开发板一出就备受青睐这期我们立马就端着开箱和上手指南来了!不用惊叹,我们就是这么迅速,请把“启明云端权威”打在公屏上好嘛!开箱展示拿到
    的头像 发表于 07-25 18:02 1403次阅读
    <b class='flag-5'>ESP32</b>-P4-MINI开发板开箱和上<b class='flag-5'>手指南</b>来了!速速码住!

    ESP32开发板元件资料

    ESP32开发板元件
    发表于 07-21 14:47 14次下载

    启明云端ESP32-S3 2.8寸串口屏到手了?如何上手?看这篇!

    【场外插播】ESP32-S32.8寸串口屏、MX1.25-7P线、MX1.25-8P线我们都带来了,开箱展示如下【竞猜继续】ESP32-S32.8寸串口屏到手还不知道如何上手点屏?不要担心,我们的上手指南来了!
    的头像 发表于 07-07 18:04 613次阅读
    启明云端<b class='flag-5'>ESP32</b>-S3 2.8寸串口屏到手了?如何上手?看这篇!

    ESP32-CAM带OV2640摄像头视频显示

    本文介绍了如何在Arduino IDE上开发实现ESP32-CAM模块获取实时图像视频
    的头像 发表于 05-23 10:47 1272次阅读
    <b class='flag-5'>ESP32</b>-CAM带OV2640摄像头视频显示

    乐鑫ESP32-C5全面进入量产

    乐鑫信息科技 (688018.SH) 宣布,ESP32-C5 现已全面进入量产。
    的头像 发表于 05-06 16:50 1043次阅读

    ESP32运行网页服务器 (Web-Server)-入门

    什么是ESP32WebServer?ESP32WebServer是在ESP32微控制器上运行的一个嵌入式网页服务器。它能够处理HTTP请求并作出响应,使用户可以通过网络浏览器与设备进行通讯和交互
    的头像 发表于 03-09 14:24 6441次阅读
    <b class='flag-5'>ESP32</b>运行网页服务器 (Web-Server)-入门<b class='flag-5'>篇</b>

    STM32和ESP32应该学哪个

    等等,市场占有率也很高。 ESP32相对年轻了不少,满打满算也不到 10 岁,他的前身,还得 ESP8266 说起,都属于乐鑫科技的产品。 如果你单片机做过一些物联网产品,那多多少
    的头像 发表于 02-18 09:52 1114次阅读

    esp32如何接入豆包

    要在 ESP32 上接入豆包工具,本质上是让 ESP32 设备与豆包的 API 进行通信,以获取相关服务
    的头像 发表于 02-05 13:40 2817次阅读
    <b class='flag-5'>esp32</b>如何接入豆包

    原来ESP32竟可《一“芯”两》既做人体检测传感器也做Wi-Fi数据传输

    今天将介绍ESP32如何"一芯两",既做人体检测传感器也做Wi-Fi数据传输模块;对于使用ESP32做Wi-Fi数据通讯,相信玩ESP32的基本上都知道怎么玩了,但是
    的头像 发表于 12-18 18:12 5335次阅读
    原来<b class='flag-5'>ESP32</b>竟可《一“芯”两<b class='flag-5'>用</b>》既做人体检测传感器也做Wi-Fi数据传输

    ESP32-S3-WROOM-1/ESP32-S3-WROOM-1U技术规格书

    电子发烧友网站提供《ESP32-S3-WROOM-1/ESP32-S3-WROOM-1U技术规格书.pdf》资料免费下载
    发表于 12-07 15:30 13次下载