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

进阶篇
接续如何快速从arduino过渡到esp32的新手指南-基础篇,继续了解esp32的各种引脚接口吧!
内容介绍
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
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引脚
i2c是什么
i2c(inter-integrated circuit)与spi类似,也用于跟各种设备进行沟通。
设备彼此沟通的规则,我们通常会称呼为串行通信协议。
i2c使用注意
i2c引脚
i2c只需要两个引脚,不管连接几个i2c设备都是使用sda和scl。这使得它在连接多个设备时非常方便,因为它占用的引脚相对较少。
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引脚
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引脚
rtc是什么
当我们使用 rtc(real-time clock,实时时钟)时,它实际上是一个独立的时钟系统。无论主电源是否关闭,rtc 都能够持续供电,确保设备能够在断电状态下仍然维持准确的时间。
在esp32,我们通过rtc来唤醒待机状态的设备来达到省电的功能。
在esp32等设备上,利用rtc来唤醒待机状态是一种常见的省电策略。待机状态(或深度睡眠)是一种极低功耗的模式,其中主处理器被关闭,但rtc仍在运行,以确保设备能够在预定的时间唤醒。这对于周期性地执行任务、定时采集数据或在特定事件发生时唤醒设备都是非常有用的。
一些常见的应用场景包括:
• 定时唤醒:在预定的时间唤醒设备以执行特定的任务,例如数据采集、通信等。
• 事件触发唤醒:当某些特定事件发生时,通过rtc唤醒设备,以便立即响应该事件。
• 电池供电设备的省电模式:在电池供电的设备中,rtc的使用可以帮助最小化功耗,延长电池寿命。
strapping 引脚
在esp32中,存在两种重要的模式,分别是boot模式和flash模式。boot模式用于运行esp32上的程序,而flash模式用于上传程序到esp32。strapping pins(引脚配置开关)用于配置esp32的工作模式。通常情况下,带有内置usb/serial的开发板会自动将这些引脚配置到正确的状态,以支持烧录或启动。然而,如果其他设备使用这些引脚,可能会导致esp32进入错误的模式。
具体而言,strapping pins是一组用于配置启动模式的引脚。在带有内置usb/serial的开发板上,系统会根据需要自动配置这些引脚。但是,当其他设备使用相同的引脚时,可能会影响esp32的启动模式,因此在设计硬件连接时需要特别注意。
en引脚
对于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模块的开发板。
虽然使用esp32 wroom-32开发板也能成功选择esp32 wroom da上传,这可能是因为在arduino ide的esp32支持包中,esp32 wroom-32也有相应的支持。
因此,最终建议在使用esp32 wroom-32开发板时,选择esp32 dev module,以确保在arduino ide中有更全面的支持和兼容性。这样能够更方便地进行开发和调试,确保代码能够正确地烧录到esp32开发板上。
后续我会继续分享零基础入门esp32的教学文章, 
也欢迎关注我的视频号与b站:伊娃老师来了。


为何多人喜欢屏幕挂灯?这次笔记本挂灯ScreenBar Lite“破案”了
一颗国产“芯片”,入侵苹果、亚马逊?
微软强行推进新的Edge作为Windows 10 20H2的一部分
微软第一时间采取措施适配搭载M1的macOS
磁环电感供应商告诉你磁环电感发货前要检测这些
ESP32的接口不能随便用,如何快速从Arduino过渡到ESP32的新手指南-进阶篇
曝酷睿i9-10900K最大负载功耗超300W 或推迟至台北电脑展发布
优特电源推出NB-IoT智能路灯照明驱动电源
郑州物联网平台开发需要哪些技术需求?
分享液晶拼接屏常见故障的解决技巧
干货——逆变电焊机维修实例及经验分享
ESD静电测试仪原理 ESD抗扰度试验方法及相关要求
电源厂商都偏爱的小家电电源芯片U6202SC
搭载RK3588,Orange Pi 5 Plus再破性能“天花板”
智能安防巡检机器人用的是什么电池?
户外P8前后双维护全彩LED显示屏的安装步骤流程
智能LED驱动电路系统的设计方案
vivo X9发布会视频直播地址 vivo X9/X9 Plus新品发布会官方直播在线
三星掌门人李在镕向朴槿惠行贿罪名成立
山东省目前规模最大投资最多的海上风电项目启动 总投资额达52亿元