码农知识堂 - 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()

     

    五、演示效果

     

     

  • 相关阅读:
    计算机毕设(附源码)JAVA-SSM联动共享汽车管理系统
    [ESP32][esp-idf] AP+STA实现无线桥接(中转wifi信号)
    npm ERR! code ERESOLVE错误解决
    K-均值聚类算法
    Linux基础入门
    杂记 | 使用阿里云函数计算服务代理OpenAI的API接口
    options.html 页面设计成聊天框,左侧是功能列表,右侧是根据左侧的功能切换成不同的内容。--chatGpt
    3295:【例50.1】陶陶摘苹果《信息学奥赛一本通编程启蒙(C++版)》
    Spring常见问题解决 - 对象参数校验失效
    Linux环境下gdb调试方法与演示
  • 原文地址:https://blog.csdn.net/zhusongziye/article/details/127415541
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号