在SPI.cpp源文件的最后面定义了SPIClass对象SPI: #ifCONFIG_IDF_TARGET_ESP32SPIClassSPI(VSPI);#elseSPIClassSPI(FSPI);#endif 在sdkconfig.h头文件中可以查看到已经定义了#define CONFIG_IDF_TARGET_ESP32 1,所以是使用VSPI定义了SPI对象。 在esp32-hal-spi.h文件中可以找到如下代码,这里定义了FSPI、HSPI...
在ESP32中,VSPI和HSPI是两个可用的SPI接口,它们的功能是相同的。一些库可能默认使用其中一个,多数是VSPI。 I2C引脚 I2C是什么 I2C(Inter-Integrated Circuit)与SPI类似,也用于跟各种设备进行沟通。 设备彼此沟通的规则,我们通常会称呼为串行通信协议。 I2C使用注意 I2C引脚 I2C只需要两个引脚,不管连接几个I2C设备...
这里VSPI来连接oled OLED --- NodeMCU GND引脚---NodeMCU-32s的GND; VDD引脚---3.3V或5V都可以; D0是SCK时钟引脚---NodeMCU GPIO18 vspi sck; D1是SDA引脚---GPIO23 vspi mosi 数据引脚; RESET引脚---选一个普通的GPIO19; DC数据命令引脚---选一个普通的GPIO21; CS引脚---选一个普通的GPIO22...
SPI2 又称为HSPI,SPI3 又称为VSPI,这两个属于GP-SPI。 ✨GP-SPI 特性: SPI主设备编程 ESP32 IDF库的SPI主设备驱动程序的API使用流程大致如下 初始化SPI总线:使用spi_bus_initialize()函数初始化SPI总线。这个函数需要一个spi_bus_config_t结构体,该结构体包含了SPI总线的配置信息,如时钟速度、数据模式等。
HSPI和VSPI并不是网友们认为的high-speed SPI 和Very High-speed SPI,HSPI、VSPI是一样的,只不过是换个名字用于区分,SPI相当于SPI0或SPI1,HSPI相当于SPI2,VSPI相当于SPI3。 ESP32 共有 4 个 SPI 控制器 SPI0、SPI1、SPI2、SPI3,用于连接支持 SPI 协议的设备。
只有VSPI和HSPI是可用的SPI接口,第三条SPI总线由集成闪存芯片使用。VSPI 引脚常用于标准库中。 HSPI 与 VSPI HSPI 有时被误解为“硬件”SPI,VSPI 被误解为“虚拟或软件”SPI。但实际上,它们是相同的! 与I2C 一样,您可以使用该命令对任何 GPIO 引脚上的 SPI 协议进行位操作bus.begin(CLK_PIN, MISO_PIN...
GPIO5: 上电默认输出一个低脉冲(200ms左右),正常运行输出高电平; 输入输出IO; VSPI_CS; HS1_DATA6; GPIO18: 输入输出IO; VSPI_CLK; HS1_DATA7; GPIO19: 输入输出IO; VSPI_Q; GPIO21: 输入输出IO; VSPI_HD; GPIO3: 输入输出IO; USART0_RX;(程序串口通信下载口) ...
说明 ESP32共有4路SPI, SPI0,SPI1,SPI2,SPI3 同时SPI2还取了个别名叫做 HSPI ; 同时SPI3还取了个别名叫做 VSPI SPI0,SPI1是只访问缓存芯片使用,可以用来给模组用来扩容ram. SPI0,SPI1的引脚分布在 GPIO6(SPI_CLK); GPIO7(SPI_Q); GPIO8(SPI_D); GPIO9(SPI_HD); GPIO10(SPI_WP); GPIO11(...
可以看出,我使用的是ESP32的SPI3(VSPI)接口,因为SPI2(HSPI)我给了显示屏用了嘛。电路图需要的注意的地方就是信号线要加上上拉电阻。OK,了解硬件资源后,开始做驱动吧。 那么要读写SD卡,先要初始化SD卡,初始化SD卡就要先配置好ESP32的SPI,才能与其进行通信。所以先来配置ESP32的SPI。
VSPI(SPI:串行外设接口) IO5 CS0* IO18 SCLK IO23 MOSI IO19 MISO HSPI(另一个SPI接口) IO15 CS0* IO14 SCLK IO13 MOSI IO12 MISO 模拟引脚 DAC 数字转模拟 ADC 模拟转数字 IO25 DAC1 ADC (左声道) IO26 DAC2 ADC (右声道) I34 ADC I36 ADC 引脚图 ESP32 DEVKIT V1引脚图 【注意】...