咸鱼ZTMR实例—1.54TFT屏

咸鱼ZTMR实例—lcd显示屏

测测屏幕,有一些需要显示的东西我们也可以做了。


1.54寸液晶屏st7789 spi

咸鱼ZTMR实例—1.54TFT屏_第1张图片
规格

基本信息 说明
尺寸 1.54寸
材料 高清IPS彩色屏
分辨率 240*240显示方向可调整
控制芯片 ST7789
显示区域 27.72*27.72MM
物理尺寸 43.72*32MM
接口类型 4线SPI接口
工作电压 3.3V
管脚数量 8PIN

引脚定义

符号 定义 与板接
GND 电源地 GND
VCC 3.3V 3.3V
SCL SPI时钟线(SCK) A5
SDA SPI数据线(MOSI) A7
RES 显示屏复位管脚 C4
DC SPI数据/命令选择角 C5
CS SPI数据片选,低电平有效 B11
BLK LED背光控制,默认可以悬空,低电平关闭背光(LED) B10

micropython下SPI通讯

基本用法
有些微控制器的 SPI 接口支持标准连接方式和半双工连接方式 (MISO 和MOSI信号合二为一),在MicroPython中,目前只支持标准方式。

SPI.init(mode,baudrate=1000000,polarity=0,phase=0,bits=8,
firstbit=SPI.MSB,pins= (CLK,MOSI,MISO)) 

mian.py

# 项目:基于ST7789的1.54 TFT lcd 屏
# ST7789以及apx202,来自lewis师兄提供,st7789的部分功能
# 参考https://github.com/jeffmer/micropython-ili9341
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)
display = None

#按键默认是1,按下是0
sw2=Pin('C13',Pin.IN,Pin.PULL_UP)
sw5=Pin('B3',Pin.IN,Pin.PULL_UP)

def lcdinit():
	#lcdinit()
	global display
	bl.value(1)  #屏幕背光打开
	
	spi = SPI(1,SPI.MASTER,baudrate=7800000,polarity=0,phase=0)
	display = ST7789(spi, cs=Pin(TFT_CS_PIN), dc=Pin(TFT_DC_PIN), rst=TFT_RST_PIN)
	
	
def ztdisplay():
	#显示彩色文字 前景红0xF800  黑背景是 0x0000
	display.set_color(0xF800,0x0000)
	display.set_font(bauhs93)
	display.set_pos(0,10)
	display.print('1.qingdao zetu')	
	
	display.set_font(tt14)
	display.set_pos(0,40)
	display.print('2.qingdao zetu')	
	
	
	display.set_color(color565(35,88,238),color565(0,0,0))
	display.draw_cn('我爱你祖国',0,60,5)#0 x值 60 y 5间距
	
	display.set_color(color565(238,246,14),color565(0,0,0))
	display.draw_zh20_str('我爱你祖国',0,80,5)
	
	display.show_img('zt.pbm',0,110,128,64)

	display.show_img('ztlog.pbm',0,180,30,30)

def color565(r, g, b):
    return (r & 0xf8) << 8 | (g & 0xfc) << 3 | b >> 3


def drawbutton():
	#显示按钮以及文字
  #display.erase()
  display.set_pos(150,20)
  display.set_font(tt14)
  display.print('CORR')
  display.rect(130,10,80,30,0xF700)  #button_CORR

  


def main():
	global display
	lcdinit()
	time.sleep_ms(100)
	while True:
		time.sleep_ms(100)
		if sw2.value()==0:
			#print(display)
			display.erase()
			
		if sw5.value()==0:
			ztdisplay()
			#drawbutton()
			
	
	
if __name__ == '__main__':
	main()

你可能感兴趣的:(硬件,#,pyb)