仿电子墨水屏ST7302

 

§01 ST7302电子屏


一、背景介绍

这款 ST7302 是从TB购买到的, 下面对它的特性进行测试, 为之后应用积累经验。

  -3-
测试平台采用 ESP32模块转接板  利用它的SPI接口来测试电子屏的功能。 这个模块转接板具有硬件和软件SPI接口。 应用HSPI1, 对应测试模块上的GPIO12,13,14, 另外再给复位和数据分配IO, 这是对应的分配方案。

  # -2-

二、搭建测试电路

在面包板上搭建测试电路。 这是器件数据手册给出的管脚功能描述。

  # # #

三、测试程序

from machine                import Pin,SPI
import time

lcd_spi = SPI(1, 1000000)
lcd_dc = Pin(15, Pin.OUT)
lcd_cs = Pin(2, Pin.OUT)
lcd_res = Pin(27, Pin.OUT)

lcd_cs.on()
lcd_dc.on()
lcd_res.on()

def LCDWriteBus(dat):
   lcd_cs.off()
   lcd_spi.write(bytes([dat]))
   lcd_cs.on()

def LCDWriteData8(dat):
   LCDWriteBus(dat)

def LCDWriteData(dat):
   datbyte = dat.to_bytes(2, 1)
   LCDWriteData8(datbyte[0])
   LCDWriteData8(datbyte[1])

def LCDWriteReg(dat):
   lcd_dc.off()
   LCDWriteBus(dat)
   lcd_dc.on()

def LCDAddressSet(x1,y1,x2,y2):
   LCDWriteReg(0x2a)
   LCDWriteData8(x1+0x19)
   LCDWriteData8(x2+0x19)
   LCDWriteReg(0x2b)
   LCDWriteData8(y1)
   LCDWriteData8(y2)
   LCDWriteReg(0x2c)

def LCDInit():
   lcd_res.off()
   time.sleep_ms(100)
   lcd_res.on()
   time.sleep_ms(400)

   LCDWriteReg(0x38)
   LCDWriteReg(0xeb)
   LCDWriteData8(0x02)
   LCDWriteReg(0xd7)

   LCDWriteData8(0x68)
   LCDWriteReg(0xd1)
   LCDWriteData8(0x01)
   LCDWriteReg(0xc0)
   LCDWriteData8(0x80)
   LCDWriteReg(0xc1)

   LCDWriteData8(0x28)
   LCDWriteData8(0x28)
   LCDWriteData8(0x28)
   LCDWriteData8(0x28)
   LCDWriteData8(0x14)
   LCDWriteData8(0x00)

   LCDWriteReg(0xc2)
   LCDWriteData8(0x00)
   LCDWriteData8(0x00)
   LCDWriteData8(0x00)
   LCDWriteData8(0x00)

   LCDWriteReg(0xcb)
   LCDWriteData8(0x14)
   LCDWriteReg(0xb4)
   LCDWriteData8(0xe5)
   LCDWriteData8(0x77)
   LCDWriteData8(0xf1)
   LCDWriteData8(0xff)
   LCDWriteData8(0xff)
   LCDWriteData8(0x4f)
   LCDWriteData8(0xf1)
   LCDWriteData8(0xff)
   LCDWriteData8(0xff)
   LCDWriteData8(0x4f)

   LCDWriteReg(0x11)
   time.sleep_ms(100)

   LCDWriteReg(0xc7)
   LCDWriteData8(0xa6)
   LCDWriteData8(0xe9)

   LCDWriteReg(0xb0)
   LCDWriteData8(0x64)
   LCDWriteReg(0x36)
   LCDWriteData8(0x00)
   LCDWriteReg(0x3a)
   LCDWriteData8(0x11)
   LCDWriteReg(0xb9)
   LCDWriteData8(0x23)
   LCDWriteReg(0xb8)
   LCDWriteData8(0x09)
   LCDWriteReg(0x2a)
   LCDWriteData8(0x05)
   LCDWriteData8(0x36)

   LCDWriteReg(0x2b)
   LCDWriteData8(0x00)
   LCDWriteData8(0xc7)
   LCDWriteReg(0xd0)
   LCDWriteData8(0x1f)

   LCDWriteReg(0x29)
   LCDWriteReg(0xb9)
   LCDWriteData8(0xe3)
   time.sleep_ms(100)

   LCDWriteReg(0xb9)
   LCDWriteData8(0x23)
   LCDWriteReg(0x72)
   LCDWriteData8(0x00)

   LCDWriteReg(0x39)
   LCDWriteReg(0x2a)
   LCDWriteReg(0x19)
   LCDWriteData8(0x23)

   LCDWriteReg(0x2b)
   LCDWriteData8(0)
   LCDWriteData8(0x7c)
   LCDWriteData8(0x2c)

   time.sleep_ms(120)

def LCDFill(xsta, ysta, xend, yend, color):
   LCDAddressSet(xsta, ysta, xend-1, yend-1)

   for _ in range(5000):
       LCDWriteData8(color)

LCDInit()
LCDFill(0,0,10,0x7c, 0xf0)

buf = bytes([0x55, 0xa0])

count = 0
while True:

   count += 1
   time.sleep_ms(100)


■ 相关文献链接:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值