一、硬件说明
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信号和引脚的映射图如下:
再根据IO引脚映射图,对应的IO为:
三、Helloworld工程准备
复制esp-idf-v5.0.1\examples\get-started\hello_world工程。
进行一些基础的工程配置,确保helloworld能正常运行。
比如我使用的NodeMCU开发板比较老,还用的是外置2MB flash,所以配置最低支持版本为v0.2。
四、编写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")
在app_main任务中添加lcd_init调用,即可看到LCD屏幕被点亮。