好的,今天我们继续来玩玩LCD.中文显示
主控板:ZTMR1.1开发板
1.54寸液晶屏st7789 spi
基本属性介绍:
属性 | 说明 |
---|---|
lcdinit() | 初始化 |
draw_cn(text,x,y,a) | 字号:16px…text:文字。x:x坐标。y:y坐标。a:间距 |
draw_zh20_str(text,x,y,a) | 字号:20px…text:文字。x:x坐标。y:y坐标。a:间距 |
set_color(color565(R,G,B),color565(R,G,B)) | 前景色,背景色RGB模式 |
文字取模:
字模提取工具运行PCtoLCD2002.exe。CSDN下载地址
顶端菜单栏,点击[选项]按下方图片设置,设置完毕后点击[确定]保存设置。
0.96寸取模设置如下
回到主界面,在输入框中输入“我”点击[生成字模]。
取得的字模数据如下:
将取到的字模数据添加到zh.py中。
绿色框中是“我”的16进制utf-8编码。
打开在线工具:http://tool.lu/hexstr/输入取模汉字(单个字输入)
点击十六进制(HEX)生成16进制字符
复制添加0x开头就OK了
参照以上方法,我依次添加了“咸鱼梦工坊”这5个汉字的字模。
20px同理
示例代码
main.py
import time
import ustruct
import framebuf
import tt14
import bauhs93
from utime import sleep_us
from micropython import const
from machine import Pin
from pyb import SPI
from ztst7789class import ST7789
#---------TFT pin 定义
TFT_RST_PIN = Pin('C4')
TFT_LED_PIN = Pin('B10')
TFT_DC_PIN = Pin('C5')
TFT_CS_PIN = Pin('B11')
TFT_CLK_PIN = Pin('A5')
TFT_MISO_PIN = Pin('A6')
TFT_MOSI_PIN = Pin('A7')
bl = Pin(TFT_LED_PIN, Pin.OUT)
LCD = None
#按键默认是1,按下是0
sw2=Pin('C13',Pin.IN,Pin.PULL_UP)
sw5=Pin('B3',Pin.IN,Pin.PULL_UP)
def lcdinit(): #初始化函数
global LCD
bl.value(1) #屏幕背光打开
spi = SPI(1,SPI.MASTER,baudrate=7800000,polarity=0,phase=0)
LCD = ST7789(spi, cs=Pin(TFT_CS_PIN), dc=Pin(TFT_DC_PIN), rst=TFT_RST_PIN)
lcdinit() #初始化
def color565(r, g, b): #255 255 255
return (r & 0xf8) << 8 | (g & 0xfc) << 3 | b >> 3
while True:
time.sleep_ms(100)
if sw2.value()==0: #按下清屏
LCD.erase()
if sw5.value()==0:
LCD.set_color(color565(255,255,0),color565(0,0,0)) #前景色,背景色
LCD.draw_cn('咸鱼梦工坊',76,100,5)#0 x值 60 y 5间距
LCD.set_color(color565(255,0,0),color565(0,0,0)) #前景色,背景色
LCD.draw_zh20_str('咸鱼梦工坊',70,120,5)
zh.py
import time
#用一个文字来代替,看会格式往里填写就行了
#16*16
zh = {
0xe592b8:[0x00,0x50,0x00,0x48,0x00,0x40,0x3F,0xFE,0x20,0x40,0x20,0x40,0x2F,0x44,0x20,0x44,
0x20,0x44,0x2F,0x28,0x29,0x28,0x29,0x12,0x2F,0x32,0x49,0x4A,0x40,0x86,0x81,0x02],#"咸"
}