• 物联网开发笔记(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。

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

     代码:

    1. import random
    2. from machine import Pin, SPI
    3. import st7789
    4. import st7789py
    5. import vga2_bold_16x32 as font
    6. import time
    7. # 解决第1次启动时,不亮的问题
    8. st7789.ST7789(SPI(2, 60000000), dc=Pin(2), cs=Pin(5), rst=Pin(15))
    9. # 创建显示屏对象
    10. tft = st7789py.ST7789(SPI(2, 60000000), 240, 240, reset=Pin(15), dc=Pin(2), cs=Pin(5), backlight=Pin(22), rotation=0)
    11. # 屏幕显示蓝色
    12. tft.fill(0)
    13. # 显示Hello
    14. tft.text(font, "Good luck!", 0, 0, st7789py.color565(255, 255, 0), st7789py.color565(0, 255, 0))
    15. def show_text():
    16. for rotation in range(4):
    17. tft.rotation(rotation)
    18. tft.fill(0)
    19. col_max = tft.width - font.WIDTH*6
    20. row_max = tft.height - font.HEIGHT
    21. for _ in range(100):
    22. tft.text(
    23. font,
    24. "I love U!",
    25. random.randint(0, col_max),
    26. random.randint(0, row_max),
    27. st7789py.color565(random.getrandbits(8),random.getrandbits(8),random.getrandbits(8)),
    28. st7789py.color565(random.getrandbits(8),random.getrandbits(8),random.getrandbits(8))
    29. )
    30. time.sleep_ms(300)
    31. # 随机显示I love U!
    32. while True:
    33. show_text()

     

    五、演示效果

     

     

  • 相关阅读:
    生成型神经网络
    【Echarts】学习笔记
    「Python实用秘技05」在Python中妙用短路机制
    Linux系统挂载硬盘
    LeetCode-80. 删除有序数组中的重复项 II-Java-medium
    php 进程通信系列 (三)信号量
    队列题目:设计循环双端队列
    算法竞赛入门【码蹄集新手村600题】(MT1280-1300)C语言
    oracle 比 mysql 查询快的原因_Oracle 查询速度慢的原因总结
    《MATLAB 神经网络43个案例分析》:第32章 小波神经网络的时间序列预测——短时交通流量预测
  • 原文地址:https://blog.csdn.net/zhusongziye/article/details/127415541