micropython写ili9341显示图片
时间: 2023-07-29 19:09:14 浏览: 163
首先,你需要安装适用于你的开发板的MicroPython固件,并将ili9341显示屏连接到开发板上。然后,你可以使用以下代码来显示图片:
```python
import gc
import time
from machine import Pin, SPI
import framebuf
# SPI引脚定义
spi = SPI(1, baudrate=40000000, sck=Pin(14), mosi=Pin(13), miso=Pin(12))
# ili9341引脚定义
cs = Pin(15)
dc = Pin(4)
rst = Pin(16)
# ili9341初始化函数
def ili_init():
# 硬件复位 ili9341
rst.value(0)
time.sleep_ms(50)
rst.value(1)
time.sleep_ms(100)
# 初始化 ili9341
cs.value(0)
spi.write(b'\x01') # 软复位
time.sleep_ms(100)
spi.write(b'\x11') # 睡眠关
time.sleep_ms(100)
spi.write(b'\x3A\x05') # 像素格式设置,16位色
spi.write(b'\x2A\x00\x00\x00\x7F') # 列地址设置
spi.write(b'\x2B\x00\x00\x00\x9F') # 行地址设置
spi.write(b'\xB2\x0C\x0C\x00\x33\x33') # 逐行扫描设置
spi.write(b'\xB7\x35') # 顶部下拉设置
spi.write(b'\xBB\x19') # 4线SPI模式设置
spi.write(b'\xC0\x2C') # 亮度设置
spi.write(b'\xC2\x01\xFF') # 电源控制1
spi.write(b'\xC3\x11') # 电源控制2
spi.write(b'\xC4\x20') # 电源控制3
spi.write(b'\xC8\x04\x67\x35\x04\x08\x06\x24\x01\x37\x40\x03\x10\x08\x80') # 伽马校正
spi.write(b'\xD0\x3F\x2C\x2E\x0B\x0C\x03\x35\x34\x05') # 显示标准控制
spi.write(b'\xE0\x00\x1F\x20\x0D\x0F\x0C\x2D\xA5\x43\x40\x0A\x0F\x05\x38\x3A\x1F') # 正向伽马校正设置
spi.write(b'\xE1\x00\x1F\x20\x0D\x0F\x0C\x2D\xA5\x43\x40\x0A\x0F\x05\x38\x3A\x1F') # 反向伽马校正设置
spi.write(b'\x29') # 显示开启
# 显示图片函数
def show_image(filename):
# 打开图片并获取图片信息
with open(filename, 'rb') as f:
f.read(10)
width = int.from_bytes(f.read(2), 'little')
height = int.from_bytes(f.read(2), 'little')
f.read(2)
data = bytearray(f.read())
# 显示图片
fb = framebuf.FrameBuffer(data, width, height, framebuf.RGB565)
cs.value(0)
spi.write(b'\x2A\x00\x00\x00\x7F') # 列地址设置
spi.write(b'\x2B\x00\x00\x00\x9F') # 行地址设置
spi.write(b'\x2C') # 写RAM命令
for y in range(height):
for x in range(width):
color = fb.pixel(x, y)
spi.write(bytearray([(color >> 8) & 0xFF, color & 0xFF]))
cs.value(1)
# 主函数
def main():
# ili9341初始化
ili_init()
# 显示图片
show_image('test.bmp')
# 清理内存
gc.collect()
# 执行主函数
main()
```
在上面的代码中,我们使用了framebuf模块来创建一个帧缓冲区,然后将图片数据写入缓冲区,并通过SPI接口将数据传输到ili9341显示屏上。请注意,这只适用于16位色的bmp图片。如果你想使用其他格式的图片,你需要根据图片格式进行相应的修改。
阅读全文