Micropython学习交流群 学习QQ群:786510434 提供多种固件下载和学习交流。

Micropython-扇贝物联 QQ群:31324057 扇贝物联是一个让你与智能设备沟通更方便的物联网云平台

Micropython学习交流群 学习QQ群:468985481 学习交流ESP8266、ESP32、ESP8285、wifi模块开发交流、物联网。

Micropython老哥俩的IT农场分享QQ群:929132891 为喜欢科创制作的小白们分享一些自制的计算机软硬件免费公益课程,由两位多年从事IT研发的中年大叔发起。

Micropython ESP频道

Micropython开发ESP32开发板之合宙ESP32 C3开发板通过串口SPI控制st7789v TFT液晶屏2寸


Micropython开发ESP32开发板之合宙ESP32 C3开发板通过串口SPI控制st7789v TFT液晶屏2寸


一、目的


        这一节我们学习如何使用合宙的ESP32 C3开发板控制2寸彩色TFT显示屏模块,分辨率240*320,SPI接口,ST7789v驱动芯片。


二、环境


        ESP32 C3 + Thonny + 2寸 ST7789v 显示屏模块 + 几根杜邦线 + Win10


接线方法:

860ea221e08f41ac8e99bac8b1730891.png

三、st7789驱动、字库、字模制作

        st7789py.py,font.py,vga2_bold_16x32.py和字模制作方法请从下文获取,谢谢!


物联网开发笔记(89)- 使用Micropython开发ESP32开发板之合宙ESP32 C3开发板通过串口SPI控制st7789 TFT液晶屏1.3寸_魔都飘雪的博客-CSDN博客

使用Micropython开发ESP32开发板之合宙ESP32 C3开发板通过串口SPI控制st7789 TFT 1.3寸液晶屏

https://blog.csdn.net/zhusongziye/article/details/129347036?spm=1001.2014.3001.5501

四、演示代码

from machine import Pin,SPI,PWM
import vga2_bold_16x32 as font
from font import Chine
import st7789py
 
blk = PWM(Pin(8),duty = (600),freq = 1000)
 
cs = Pin(7,Pin.OUT) # CS片选信号单独列出来,点亮屏幕前需要先拉低
 
spi = SPI(1,baudrate = 60_000_000,polarity = 1,sck = Pin(2),mosi = Pin(3),miso = None)
tft = st7789py.ST7789(spi,320,240, reset=Pin(10,Pin.OUT), dc = Pin(6,Pin.OUT),cs = None,backlight=None, rotation=0) #0-3
 
#16*32字体函数
def ByteOpera16x32(num,dat):
  byte= [0x01,0x02,0x04,0x8,0x10,0x20,0x40,0x80]
  if dat&byte[num]:
    return 1
  else:
    return 0
 
def LcdShowCh_16x32(n, x_axis, y_axis):
  for i in range(4): 
    for a in range(16): 
      for b in range(8):
        if(ByteOpera16x32(b,Chine.chine[n*64+i*16+a])): 
          tft.pixel(x_axis+a,y_axis+i*8+b,st7789py.color565(1,255,1))
        else:
          tft.pixel(x_axis+a,y_axis+i*8+b,st7789py.color565(0,0,0))
          
def main():
    cs.off() # CS片选信号需要先拉低
    #tft.fill(0xfff0)
    tft.text(font,"Welcome China",0,10,st7789py.color565(0,0,255), st7789py.color565(255,0,0))
    
    for i in range(6):
        LcdShowCh_16x32(i,i*16,42)
    
    while True:
        pass
 
if __name__ == "__main__":
    main()

五、演示效果

fd01d34761ee463bbace070efb19e177.png

532ee8b42b684b8bb92052ac6fe1cb71.png


来源:https://blog.csdn.net/zhusongziye/article/details/129349010



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 ESP56.com All Rights Reserved

执行时间: 0.0090770721435547 seconds