码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 物联网开发笔记(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()

     

    五、演示效果

     

     

  • 相关阅读:
    OPTEE Gprof(GNU profile)
    颜色特征和sift算法结合的指示类交通标志识别
    微信聚合聊天系统的便捷功能:自动回复
    尚硅谷笔记——React组件的三大属性props、state、ref
    51单片机自动量程(3挡)0-30v直流电压表万用表CD4051 LCD1602显示 MCP3201
    【java毕业设计】基于java+tomcat+jsp的威客网站设计与实现(毕业论文+程序源码)——威客网站
    经过CNN、LSTM训练、预测,数据集的数据为什么会被打乱?以及基于pytorch框架代码实现打乱后的恢复
    《一周搞定模电》—集成运算放大器
    Java图书馆借阅功能实现
    4、乐趣国学—“满招损,谦受益。”
  • 原文地址:https://blog.csdn.net/zhusongziye/article/details/127415541
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号