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

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

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

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

Micropython ESP频道

micropython esp32 lvgl 引用中文字库


字库生成软件

QQ图片20230630094157.jpg


百度网盘下载链接: https://pan.baidu.com/s/1K3lMj7ON2DqIDhTr522QLQ?pwd=r9af

 



使用效果:

QQ图片20230630094152.jpg


import lvgl as lv
import espidf as esp
import time
#from espidf import VSPI_HOST
from ili9XXX import ili9488, LANDSCAPE
from ft6x36 import ft6x36 
import esp32
from micropython import const
import fs_driver
import onewire, ds18x20
from espidf import VSPI_HOST
from machine import Pin, I2C


import machine
machine.freq(240000000)

#BL引脚
p16 = Pin(16, Pin.OUT)
p16.value(1)

# ------------------------------ 屏幕初始化操作 --start------------------------
# 屏幕宽高
WIDTH = 320
HEIGHT = 480

"""
(0x04)#刷新0=从左到右,1=从右到左
(0x10)#刷新0=从上到下,1=从下到上
(0x20)#0=正常,1=行/列交换
(0x40)#0=从左到右,1=从右到左
(0x80)#0=从上到下,1=从下到上
"""

# 创建显示屏对象


disp = ili9488(miso=13, mosi=11, clk=12, cs=10, dc=17, rst=18,
              spihost=VSPI_HOST, mhz=20,power=-1,backlight=-1,
               factor=16, hybrid=True, width=320, height=480,rot=0x40|0x10, #竖屏 0x40|0x10  横屏0x20 
               invert=True, double_buffer=True, half_duplex=False)


# 创建触摸屏对象
touch = ft6x36(sda=6, scl=7,inv_x=False, inv_y=False, swap_xy=False)# 竖屏 swap_xy=False 横屏 swap_xy=True
# ------------------------------ 屏幕初始化操作 --stop------------------------





# 1. 创建显示screen对象。将需要显示的组件添加到这个screen才能显示
scr = lv.obj()  # scr====> screen 屏幕
fs_drv = lv.fs_drv_t()
fs_driver.fs_register(fs_drv, 'S')
scr = lv.scr_act()
scr.clean()


# 2. 封装的需要显示的按钮
class CounterBtn():
    def __init__(self, scr):
        self.cnt = 0

        self.myfont_cn = lv.font_load("S:./font.bin")
        label = lv.label(scr)  # 在按钮上创建一个标签Label,用来显示文字用
        label.set_style_text_font(self.myfont_cn, 0)  # set the font
        label.set_size(120, 50)  # 设置按钮的宽度为120, 高度为50
        label.align(lv.ALIGN.CENTER,-50,-50)  # 居中(第1个0表示x的偏移量,第2个0表示相对于y的偏移量)
        label.set_text("测试")  # 设置文字内容
        #label.center()  # 相对于父对象居中


        label2 = lv.label(scr)  # 在按钮上创建一个标签Label,用来显示文字用
        label2.set_style_text_font(self.myfont_cn, 0)  # set the font
        label2.set_size(120, 50)  # 设置按钮的宽度为120, 高度为50
        label2.align(lv.ALIGN.CENTER,-50,50)  # 居中(第1个0表示x的偏移量,第2个0表示相对于y的偏移量)
        label2.set_text("中国")  # 设置文字内容
        #label2.center()  # 相对于父对象居中



# 3. 创建按钮
counterBtn = CounterBtn(scr)

# 4. 显示screen对象中的内容
lv.scr_load(scr)




 
# ------------------------------ 看门狗,用来重启ESP32设备 --start------------------------
try:
    from machine import WDT
    wdt = WDT(timeout=2000)  # enable it with a timeout of 2s
    print("提示: 按下Ctrl+C结束程序")
    while True:
        wdt.feed()
        time.sleep(0.9)
except KeyboardInterrupt as ret:
    print("程序停止运行,ESP32已经重启...")

# ------------------------------ 看门狗,用来重启ESP32设备 --stop-------------------------



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

Copyright © 2014 ESP56.com All Rights Reserved

执行时间: 0.009019136428833 seconds