笔记|利用CircuitPython驱动wio terminal内置的TFTLCD显示屏20230513

0.参考案例:

CircuitPython | CircuitPython Hardware: ILI9341 TFT & FeatherWing | Adafruit Learning System

与wio terminal内置的TFTLCD显示器使用相同的ILI9341驱动,320 x 240显示屏。

1.前置条件:

32d5f9b44d997eaa6cf9537d5aa9399b.png

硬件wio terminal掌机

CircuitPython on Wio Terminal对应驱动(安装参考:CircuitPython with Wio Terminal | Seeed Studio Wiki

Adafruit最新的库(安装参考:CircuitPython Libraries | Welcome to CircuitPython! | Adafruit Learning System

2.我的版本:

CircuitPython版本8.0.5

Adafruit库版本Bundle for Version 8.x 20230513(我也看不懂,照着对应版本下最新的就行)

编辑器Thonny(如果以前没用过可以试试推荐Adafruit的Mu Editor,我懒得换了)

3.得到示例代码为:

import board
import busio
import digitalio

spi = busio.SPI(clock=board.SCK, MOSI=board.MOSI, MISO=board.MISO)

cs = digitalio.DigitalInOut(board.TFT_CS)
dc = digitalio.DigitalInOut(board.TFT_DC)

from adafruit_rgb_display import ili9341, color565
display = ili9341.ILI9341(spi, cs=cs, dc=dc)

display.fill_rectangle(0, 0, 120, 170, color565(0, 0, 255))

4.预期效果为

b130409a84184efa8834792eac271b82.png

5.实际效果为

>>> %Run -c $EDITOR_CONTENT
Traceback (most recent call last):
  File "<stdin>", line 7, in <module>
ValueError: TFT_CS in use

6.解决进度

考虑是

cs = digitalio.DigitalInOut(board.TFT_CS)

digitalio.DigitalInOut方法是自定义io绑定为屏幕使用所用的方法,针对内置引脚board.TFT_CS可能用其他的调用方法,继续挖掘一下。

目前还在找,解决了就更新。

----6.24已解决----

先上效果图,明天整理代码。

集成在wieTerminal内部的显示屏可以直接用board.diaplay调用,不需要再绑定pin或者显示器驱动。

对应参考文档的这部分circuitpython-libraries【往下滑,看helper】

下一期主要就是解决常见图片如何降低位深度、怎么显示gif以及解决汉字显示的问题啦~~~

import board
import displayio
from adafruit_display_shapes.rect import Rect
from adafruit_display_shapes.circle import Circle
from adafruit_display_shapes.roundrect import RoundRect

splash = displayio.Group()
board.DISPLAY.show(splash)

color_bitmap = displayio.Bitmap(320, 240, 1)
color_palette = displayio.Palette(1)
color_palette[0] = 0xFFFFFF
bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette)
# print(bg_sprite.position)
splash.append(bg_sprite)


rect = Rect(80, 20, 41, 41, fill=0x0)
splash.append(rect)

circle = Circle(100, 100, 20, fill=0x00FF00, outline=0xFF00FF)
splash.append(circle)

rect2 = Rect(50, 100, 61, 81, outline=0x0, stroke=3)
splash.append(rect2)

roundrect = RoundRect(10, 10, 61, 81, 10, fill=0x0, outline=0xFF00FF, stroke=6)
splash.append(roundrect)

00a86cc073bb47f79f3728711e7093c5.jpg

import board
import displayio
import adafruit_imageload

image, palette = adafruit_imageload.load(
    "images/4bit.bmp", bitmap=displayio.Bitmap, palette=displayio.Palette
)
tile_grid = displayio.TileGrid(image, pixel_shader=palette)

group = displayio.Group()
group.append(tile_grid)
board.DISPLAY.show(group)
# bmp图要求在16位深度色彩及以下

3bc15348ef1e425fbcf26f3ce3e0f478.jpg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值