mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
* Fix GPIO/SPI code * Use buffers in SPI read/write * Add pin qstrs OMV2 * remove old led files * Update LCD user examples
165 lines
2.8 KiB
Python
165 lines
2.8 KiB
Python
import spi, gpio
|
|
from time import sleep
|
|
|
|
rst = gpio.GPIO(gpio.PA1)
|
|
rs = gpio.GPIO(gpio.PA2)
|
|
cs = gpio.GPIO(gpio.PA7)
|
|
|
|
def reset():
|
|
rst.low()
|
|
sleep(100)
|
|
rst.high()
|
|
sleep(100)
|
|
|
|
def write_command(c):
|
|
cs.low()
|
|
rs.low()
|
|
spi.write(c)
|
|
cs.high()
|
|
|
|
def write_data(c):
|
|
cs.low()
|
|
rs.high()
|
|
spi.write(c)
|
|
cs.high()
|
|
|
|
def clear(c=0x00):
|
|
write_command(0x2C)
|
|
for i in range(120*160):
|
|
write_data(c)
|
|
write_data(c)
|
|
|
|
def write_image(image):
|
|
write_command(0x2C)
|
|
cs.low()
|
|
rs.high()
|
|
spi.write(image)
|
|
cs.high()
|
|
|
|
def init():
|
|
#HW reset
|
|
reset()
|
|
|
|
#LCD init sequence
|
|
#Sleep exit
|
|
write_command(0x11)
|
|
sleep (120)
|
|
|
|
#ST7735R Frame Rate
|
|
write_command(0xB1)
|
|
write_data(0x01)
|
|
write_data(0x2C)
|
|
write_data(0x2D)
|
|
|
|
write_command(0xB2)
|
|
write_data(0x01)
|
|
write_data(0x2C)
|
|
write_data(0x2D)
|
|
|
|
write_command(0xB3)
|
|
write_data(0x01)
|
|
write_data(0x2C)
|
|
write_data(0x2D)
|
|
write_data(0x01)
|
|
write_data(0x2C)
|
|
write_data(0x2D)
|
|
|
|
write_command(0xB4)
|
|
#Column inversion
|
|
write_data(0x07)
|
|
|
|
#ST7735R Power Sequence
|
|
write_command(0xC0)
|
|
write_data(0xA2)
|
|
write_data(0x02)
|
|
write_data(0x84)
|
|
|
|
write_command(0xC1)
|
|
write_data(0xC5)
|
|
write_command(0xC2)
|
|
write_data(0x0A)
|
|
write_data(0x00)
|
|
|
|
write_command(0xC3)
|
|
write_data(0x8A)
|
|
write_data(0x2A)
|
|
|
|
write_command(0xC4)
|
|
write_data(0x8A)
|
|
write_data(0xEE)
|
|
|
|
#VCOM
|
|
write_command(0xC5)
|
|
write_data(0x0E)
|
|
|
|
#MX, MY, MV, RGB mode
|
|
write_command(0x36)
|
|
write_data(0x60)
|
|
|
|
#ST7735R Gamma Sequence
|
|
write_command(0xe0)
|
|
write_data(0x0f)
|
|
write_data(0x1a)
|
|
write_data(0x0f)
|
|
write_data(0x18)
|
|
write_data(0x2f)
|
|
write_data(0x28)
|
|
write_data(0x20)
|
|
write_data(0x22)
|
|
write_data(0x1f)
|
|
write_data(0x1b)
|
|
write_data(0x23)
|
|
write_data(0x37)
|
|
write_data(0x00)
|
|
write_data(0x07)
|
|
write_data(0x02)
|
|
write_data(0x10)
|
|
|
|
write_command(0xe1)
|
|
write_data(0x0f)
|
|
write_data(0x1b)
|
|
write_data(0x0f)
|
|
write_data(0x17)
|
|
write_data(0x33)
|
|
write_data(0x2c)
|
|
write_data(0x29)
|
|
write_data(0x2e)
|
|
write_data(0x30)
|
|
write_data(0x30)
|
|
write_data(0x39)
|
|
write_data(0x3f)
|
|
write_data(0x00)
|
|
write_data(0x07)
|
|
write_data(0x03)
|
|
write_data(0x10)
|
|
|
|
# set column address
|
|
write_command(0x2a)
|
|
write_data(0x00)
|
|
write_data(0x00)
|
|
write_data(0x00)
|
|
write_data(0x9F)
|
|
|
|
# set row address
|
|
write_command(0x2b)
|
|
write_data(0x00)
|
|
write_data(0x00)
|
|
write_data(0x00)
|
|
write_data(0x77)
|
|
|
|
#Enable test command
|
|
write_command(0xF0)
|
|
write_data(0x01)
|
|
|
|
#Disable ram power save mode
|
|
write_command(0xF6)
|
|
write_data(0x00)
|
|
|
|
#65k mode
|
|
write_command(0x3A)
|
|
write_data(0x05)
|
|
|
|
#Display on
|
|
write_command(0x29)
|
|
|