ESP8266基于Lua开发使用U8g2模块驱动 i2c ssd1306 OLED显示

这篇具有很好参考价值的文章主要介绍了ESP8266基于Lua开发使用U8g2模块驱动 i2c ssd1306 OLED显示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ESP8266基于Lua开发使用U8g2模块驱动 i2c ssd1306 OLED显示

  • 📍相关篇《ESP8266基于Lua开发点灯示例》

  • 📖U8g2对应的API接口函数:https://nodemcu.readthedocs.io/en/release/modules/u8g2/

  • 📺驱动显示效果:
    ESP8266基于Lua开发使用U8g2模块驱动 i2c ssd1306 OLED显示

  • 🔖官方U8g2驱动Demo :https://github.com/nodemcu/nodemcu-firmware/blob/release/lua_examples/u8g2/graphics_test.lua

  • ✨在使用U8g2时,可能会出现上传过程中报错的问题:

  • 📢上传报错:Waiting answer from ESP - Timeout reached. Command aborted.Waiting answer from ESP - Timeout reached.
    🗝 处理办法就是,ESPPlorer不使能应答。

ESP8266基于Lua开发使用U8g2模块驱动 i2c ssd1306 OLED显示

⛳注意事项

  1. 使用U8g2库,跑官方的Demo示例需要,固件引入bit模块,因为在示例代码中有使用到,否则会报错。
    • 代码187行:
local function draw()
  u8g2_prepare()
  local d3 = bit.rshift(draw_state, 3)
  local d7 = bit.band(draw_state, 7)
  1. 所编译的固件有整数型和浮点型固件,如果使用整数型固件那么跑官方Demo示例需要修改对应的示例中的代码,将里面所出现的浮点型数值改为整数型,否则会报错。
  • 🔖下面折现使用带浮点型的数值,在烧录到使用整数型固件的esp8266中是不支持的。

local function u8g2_bitmap_modes(transparent)
  local frame_size = 24

  disp:drawBox(0, frame_size * 0.5, frame_size * 5, frame_size)
  disp:drawStr(frame_size * 0.5, 50, "Black")
  disp:drawStr(frame_size * 2, 50, "White")
  disp:drawStr(frame_size * 3.5, 50, "XOR")
  1. 使用U8g2官方示例默认启用的是I2c接口(SCL:D6,SDA:D5)
  2. 编自己编译固件的时候,勾选U8g2模块后,在下面选择对应的屏幕接口,一定要和代码中的所使用的构造函数的接口一致,否则会报错,找不到变量
    ESP8266基于Lua开发使用U8g2模块驱动 i2c ssd1306 OLED显示

-- setup I2c and connect display
local function init_i2c_display()
    -- SDA and SCL can be assigned freely to available GPIOs
    local sda = 5 -- GPIO14
    local scl = 6 -- GPIO12
    local sla = 0x3c
    i2c.setup(0, sda, scl, i2c.SLOW)
    disp = u8g2.ssd1306_i2c_128x64_noname(0, sla)
end

📝I2C驱动示例代码

ESP8266基于Lua开发使用U8g2模块驱动 i2c ssd1306 OLED显示文章来源地址https://www.toymoban.com/news/detail-461180.html

-- 管脚定义
local sda = 5 -- GPIO14
local scl = 6 -- GPIO12
local sla = 0x3c  -- oled的地址,一般为0x3c
-- 初始化
function init_oled()
    -- iic总线 和 oled初始化
    i2c.setup(0, sda, scl, i2c.SLOW)
    disp = u8g2.ssd1306_i2c_128x64_noname(0, sla)
    -- 设置字体
    disp:setFont(u8g2.font_unifont_t_symbols)
    disp:setFontRefHeightExtendedText()
    --disp:setDrawColor(1)
    disp:setFontPosTop()
    --disp:setFontDirection(0)
    -- 画边框
    --disp:drawFrame(0, 0, 128, 64)
end
-- 显示函数
function oled_show_msg()
    -- 设置显示内容
    disp:drawStr(0, 0,  " Perseverance51")
    disp:drawStr(0, 16, "  Hello World!")
    disp:drawStr(0, 32, "  9527")
    disp:drawStr(0, 48, "  greentree")
    -- 将内容发送到oled
    disp:sendBuffer()
end
-- 主函数
function main()
    init_oled()
    oled_show_msg()
end
-- 运行程序
main()

到了这里,关于ESP8266基于Lua开发使用U8g2模块驱动 i2c ssd1306 OLED显示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • u8g2库的使用及驱动LCD显示中文

    1、准备工作 Env 工具包含了 RT-Thread 源代码开发编译环境和软件包管理系统。 从 RT-Thread 官网下载 Env 工具。https://www.rt-thread.org/download.html。 在电脑上装好 git,软件包管理功能需要 git 的支持。git 的下载地址为https://git-scm.com/downloads,根据向导正确安装 git,并将 git 添加到系

    2024年02月02日
    浏览(24)
  • ESP32 入门笔记04: 0.96寸OLED 显示屏 + u8g2库丝滑显示UI (ESP32 for Arduino IDE)

    先导知识 ESP32 入门笔记01:开发板信息、开发环境搭建以及学资料准备 ESP32 入门笔记02: GPIO参考指南 在本例中,我们使用 I2C 通信协议。ESP32 中最适合 I2C 通信的引脚是通用输入输出接口 22(SCL) 和通用输入输出接口 21(SDA) 。 安装 SSD1306 OLED 库 – ESP32 (也可以用u8g2库,在Ardu

    2024年01月19日
    浏览(27)
  • 【STM32 MCU】使用标准外设库(SPL)移植 u8g2 图形库

    MCU STM32F103C8T6 Module 0.96 inch OLED with SSD1306 Library Standard peripheral library Porting to new MCU platform · olikraus/u8g2 Wiki (github.com) 为了减小编译后的大小,我们需要删除或精简以下的文件 U8g2 的源码为了支持多种控制器(controller),包含了许多兼容性的代码。首先,类似 u8x8_d_xxx.c 命名的

    2024年04月10日
    浏览(17)
  • U8G2中文显示问题(u8g2.drawStr()中文不显示)

            在使用u8g2进行中文先显示时,踩到一个坑,其他大佬也没有专门提过这一点,现跟大家分享一下。         起因是在看一些例程时,直接采用u8g2.drawStr()来进行英文输出,在想用该方法进行中文输出时,无法显示中文。 运行代码如下: 显示效果为: 只显示\\\"Hello\\\",

    2024年02月11日
    浏览(24)
  • [低端局][cx32L003] 移植U8G2

    在低端芯片上使用U8G2 U8g2:单色显示库,版本2 U8g2是一个用于嵌入式设备的单色图形库。U8g2支持单色oled和lcd,其中包括以下控制器:Ssd1305、ssd1306、ssd1309、ssd1312、ssd1316、ssd1318、ssd1320、ssd1322、ssd1325、ssd1327、ssd1327、ssd1327、ssd1327、ssd1327、ssd1327、ssd1106、sh1107、sh1108、ssd1607、

    2024年02月13日
    浏览(20)
  • Adafruit_GFX u8g2库添加中文字体

    u8g2字体生成工具 下载完成后,将文件解压至没有中文字符的路径下。 免费字体下载网站 我这里选择下载优设标题圆这一字体。 打开解压好的字体生成工具,将下载好的ttf字体复制至font文件夹中。 并将字体文件重命名,名称不能包含中文字符,否则会转换失败。 接下来,

    2024年02月13日
    浏览(38)
  • STM32移植u8g2玩转oled 用软件iic实现驱动oled

    移植u8g2到stm 这里是驱动iic 这里可以驱动u8g2 具体作用后续学习 下面就基本上可以驱动成功 最主要是修改后的u8g2的图

    2024年02月11日
    浏览(21)
  • 【U8G2库移植到STM32F103C8T6上】

    最近在B站上刷到了一位up主设计的oled丝滑界面WouoUI,一个优雅得比较像话的UI框架,128 * 64 经过询问,得知up用的是U8G2库,U8G2多用于arduino编译器上,但是我们学校常用的是stm32。 所以经过一段时间的研究,我将U8G2库移植到了stm32f103c8t6上进行使用。 关于U8G2的使用,可以参考

    2024年02月11日
    浏览(17)
  • U8g2库的STM32硬件SPI(DMA)移植教程(HAL、OLED显示、四线SPI、DMA)

    本文教你把U8g2图形库移植到STM32上,基于STM32的硬件SPI、CubeMX U8g2库Github网址:https://github.com/olikraus/u8g2 U8g2库CSDN镜像网址:https://gitcode.net/mirrors/olikraus/u8g2?utm_source=csdn_github_accelerator 硬件准备:STM32C8T6(STM32系列芯片)、0.96寸OLED(128×64)、J-Link(或其他) 引脚连接: 出自此

    2024年02月09日
    浏览(25)
  • HAL/LL/STD STM32 U8g2库 +I2C SSD1306/sh1106 WouoUI磁贴案例

    📍基于STM32F103C8T6 LL库驱动版本: https://gitee.com/chcsx/platform-test/tree/master/MDK-ARM 🎬视频演示: WouoUI移植磁贴案例,新增确认弹窗 📍基于标准库驱动,STM32F103RCT6移植u8g2 硬件i2c WouoUI磁贴: https://gitee.com/henrycrh/stm32-f103-rct6_-wouo-ui/tree/master/STM32F10x_FWlib/src 🎬视频演示: 🔖使用LL库

    2024年02月22日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包