ESP32-IDF开发笔记 | 03 - 使用SPI外设驱动ST7789 SPILCD

一、硬件说明

ST7789屏幕引脚 ESP32C3F引脚
3V3 3V3
GND GND
MOSI IO_07
CLK IO_06
DC IO_08
RST IO_04
BL IO_05

二、ESP32的SPI外设

1. 外设功能

ESP32-C3具有三个SPI接口(SPI0、SPI1和SPI2)。

SPI0和SPI1只能配置为在SPI内存模式下操作,而SPI2可以配置为在SPI内存和通用SPI模式下操作。

在SPI主机模式下,时钟频率不超过80mhz,支持四种SPI传输格式。

SPI信号和引脚的映射图如下:
ESP32-IDF开发笔记 | 03 - 使用SPI外设驱动ST7789 SPILCD_第1张图片
再根据IO引脚映射图,对应的IO为:
ESP32-IDF开发笔记 | 03 - 使用SPI外设驱动ST7789 SPILCD_第2张图片

三、Helloworld工程准备

复制esp-idf-v5.0.1\examples\get-started\hello_world工程。

进行一些基础的工程配置,确保helloworld能正常运行

比如我使用的NodeMCU开发板比较老,还用的是外置2MB flash,所以配置最低支持版本为v0.2。

ESP32-IDF开发笔记 | 03 - 使用SPI外设驱动ST7789 SPILCD_第3张图片

四、编写st7789驱动

移植我之前写的st7789驱动,适配esp32的gpio接口和spi接口即可。

源码:https://github.com/Mculover666/HAL_Driver_Lib/tree/master/LCD-SPI

在components文件夹中,加入LCD_SPI文件夹,并添加一个CmakeList.txt,即可使用:

idf_component_register(SRCS "lcd_spi_drv.c"
                    INCLUDE_DIRS "."
                    PRIV_REQUIRES "driver")

ESP32-IDF开发笔记 | 03 - 使用SPI外设驱动ST7789 SPILCD_第4张图片
在app_main任务中添加lcd_init调用,即可看到LCD屏幕被点亮。
ESP32-IDF开发笔记 | 03 - 使用SPI外设驱动ST7789 SPILCD_第5张图片

你可能感兴趣的:(ESP32-C3F,esp32,st7789,spi)