文章目录一、前言二、前置准备三、代码一、前言这里使用python进行开发。图片显示的话暂时只能显示bmp格式的图片。需要将图片转换为240x240大小的bmp格式(也就是安装了st7789芯片的显示器的大小).以下是转换地址https://convertio.co/zh/download/8c0363a07b21bfb45834b96f0b1fdf8507864e/还需要一个st7789的驱动https://github.com/russhughes/st7789py_mpy/blob/master/lib/st7789py.py。还有另外一种使用bin的方式驱动的比较复杂就没尝试二、前置准备将图准备好将驱动文件上传到esp32上的磁盘上。如何将电脑上的文件上传参考下面方式打开这个选项。然后可以看到电脑目录然后如下操作选择上传到/ 选项即可上传完后然后把st7789芯片的显示器接到esp32上以下是一个示例接法。八根线对应如下GND-GNDVCC- 3v3SCL-D15SDA-D4RES-D5DC-D21CS-D22BL-D23其中GND、VCC可以随便换只要引脚别冲突就好。三、代码importmachineimportst7789pyasst7789importtime# --- 引脚配置按照你的实际接线---SPI_SCK_PIN15# SCL - D15SPI_MOSI_PIN4# SDA - D4RST_PIN5# RES - D5DC_PIN21# DC - D21CS_PIN22# CS - D22BL_PIN23# BL - D23# --- 初始化 SPI降低波特率提高稳定性---spimachine.SPI(1,baudrate20000000,polarity1,phase1,sckmachine.Pin(SPI_SCK_PIN),mosimachine.Pin(SPI_MOSI_PIN))# --- 初始化屏幕加入 cs 引脚---tftst7789.ST7789(spi,240,240,resetmachine.Pin(RST_PIN,machine.Pin.OUT),dcmachine.Pin(DC_PIN,machine.Pin.OUT),csmachine.Pin(CS_PIN,machine.Pin.OUT),# 重要片选引脚backlightmachine.Pin(BL_PIN,machine.Pin.OUT),rotation0)tft.fill(st7789.BLACK)# 清屏# --- 显示 24位 BMP 图片的函数不变---defdraw_bmp(tft,filename,x0,y0):try:withopen(filename,rb)asf:iff.read(2)!bBM:print(不是有效的 BMP 文件)returnf.seek(10)data_offsetint.from_bytes(f.read(4),little)f.seek(18)img_widthint.from_bytes(f.read(4),little)img_heightint.from_bytes(f.read(4),little)f.seek(data_offset)forrowinrange(img_height-1,-1,-1):row_dataf.read(img_width*3)bufferbytearray(img_width*2)forcolinrange(img_width):brow_data[col*3]grow_data[col*31]rrow_data[col*32]color565((r0xF8)8)|((g0xFC)3)|(b3)buffer[col*2](color5658)0xFFbuffer[col*21]color5650xFFtft.blit_buffer(buffer,x,yrow,img_width,1)exceptExceptionase:print(读取图片出错:,e)# --- 调用显示请确保 logo.bmp 已上传到 ESP32 根目录---print(开始显示图片...)draw_bmp(tft,image.bmp,0,0)print(显示完成)