物联网开发笔记(27)- 使用Micropython开发ESP32开发板之控制240x240的oled屏幕(ST7789芯片)

        这一节我们讲解了如何控制240x240的oled屏幕,该oled屏幕驱动芯片是ST7789,我们控制屏幕显示两行字。

一、目的

        使用MicroPython开发ESP32开发板控制240x240的oled屏幕。

二、环境

        ESP32 + 240x240的oled彩色屏幕+ Thonny IDE + 几根杜邦线

开发板和屏幕接线方法:

 

三、屏幕介绍

 

        有8个引脚,通过SPI协议进行通信。使用的芯片是ST7789。至于什么是SPI协议?大家自行百度,这里不再赘述。

 引脚定义如下:

 

四、使用方法

屏幕驱动下载地址:

百度网盘:

链接: https://pan.baidu.com/s/1S7Ve8kNj_xiSH5o9OrPZAQ 提取码: zxyp

导入以下两个库:st7789.py 和 st7789py.py

 注意将st7789py.py的以下两行注释掉:

 字体库:

字体库文件比较大,注意开发板的存储空间。它占用空间较大,所以代码写的复杂的话会出现申请内存error。

将以上文件和我们的代码放在开发板的根目录下即可

 代码:

import random
from machine import Pin, SPI
import st7789
import st7789py
import vga2_bold_16x32 as font
import time

# 解决第1次启动时,不亮的问题
st7789.ST7789(SPI(2, 60000000), dc=Pin(2), cs=Pin(5), rst=Pin(15))

# 创建显示屏对象
tft = st7789py.ST7789(SPI(2, 60000000), 240, 240, reset=Pin(15), dc=Pin(2), cs=Pin(5), backlight=Pin(22), rotation=0)

# 屏幕显示蓝色
tft.fill(0)

# 显示Hello
tft.text(font, "Good luck!", 0, 0, st7789py.color565(255, 255, 0), st7789py.color565(0, 255, 0))


def show_text():
    for rotation in range(4):
        tft.rotation(rotation)
        tft.fill(0)
        col_max = tft.width - font.WIDTH*6
        row_max = tft.height - font.HEIGHT

        for _ in range(100):
            tft.text(
                font,
                "I love U!",
                random.randint(0, col_max),
                random.randint(0, row_max),
                st7789py.color565(random.getrandbits(8),random.getrandbits(8),random.getrandbits(8)),
                st7789py.color565(random.getrandbits(8),random.getrandbits(8),random.getrandbits(8))
            )
        time.sleep_ms(300)

# 随机显示I love U!
while True:
    show_text()

 

五、演示效果

 

 

  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

魔都飘雪

您的1毛奖励是我创作的源源动力

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

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

打赏作者

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

抵扣说明:

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

余额充值