ESP8266如何使用u8g2(I2C)驱动SH1106的OLED

2023-11-06

u8g2是一款单色图形库,非常适合12864之类的显示屏,基本上支持了市面上的主流显示控制器。可是偏偏对SH1106不是那么友好,使用起来不是很方便。打开IDE的示例程序可以看到对SH1106列出来的几乎都SPI通信方式,仅仅只有一条是使用了硬件I2C的,但对于使用想使用模拟方式的就不是很方便了。

今天就分享一下怎么在ESP8266上使用u8g2驱动SH1106的OLED,本文中使用的是模拟I2C的方式,Arduino IDE编写。

一.首先在IDE库中安装u8g2库

直接在IDE的库管理器搜索“u8g2”关键字下载安装即可:

二 .打开示例程序修改代码

我打开的是u8g2logo的示例程序。然后再敲下这句代码或者复制示例中硬件I2C的修改:

U8G2_SH1106_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,  /*SCL*/  14,  /*SDA*/  2,   /*reset*/  U8X8_PIN_NONE);

*注 :函数内的第一个和最后一个参数不用修改,SCL和SDA则修改为自己板子上要对应的引脚。实测8266上的GPIO16不可用作I2C引脚。 

三 .注释steup函数中引脚配置的代码

 四.连接好你的设备,编译上传

编译无误,上传成功。

五 .大功告成

接下来你就可以使用u8g2去玩SH1106了。

*注:本文对于SSD1306控制器也是适用的,但SH1106是不兼容SSD1306代码的,会出现白边或者字体有间隔。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP8266如何使用u8g2(I2C)驱动SH1106的OLED 的相关文章

  • 外设驱动库开发笔记22:ADXL345三轴数字加速度计驱动

    移动设备的广泛应用增加对移动过程中各种参数的检测需求 ADXL345三轴数字加速度计可以用来检测加速度 进而测量倾斜角度等 在这一篇中 我们将讨论ADXL345三轴数字加速度计驱动程序的设计与实现 1 功能概述 ADXL345是一款小而薄的
  • STM32驱动8266-----8266AP模式

    找了很久 一直没有找到驱动的程序 查一些资料 字写了一个简单程序 记录分享一下 void esp8266 inittcp void printf AT CIPMODE 2 r n 设置AP模式 delay ms 10000 延时函数 pri
  • 构建配置ESP8266 MQTT服务器

    我们将了解ESP8266模块如何通过消息队列遥测传输 MQTT 相互通信 MQTT术语 已经使用了诸如中央代理 主题 发布 订阅之类的术语 因此现在该用类似于邮局的方式来解释它们了 消息是报纸或杂志 代理 这是一个接收客户端消息的软件应用程
  • 野火STM32F1开发板 IIC 0.96OLED 波形显示

    硬件连接 软件代码 MAIN C include sys h include delay h include usart h include bsp adc h include bsp advanced timer h include bs
  • Arduino IDE 烧录 ESP8266教程

    Arduino IDE for ESP8266教程 原出处 http www windworkshop cn p 758 ESP8266是现在性价比不错的Wifi模块 用了一块ESP8266 01之后感觉还行 用在数据采集器上表现还是不错的
  • ESP8266 hspi的调试

    这一两个礼拜基本上都在爬这个坑 功夫不负有心人 终于搞定了 其实非常简单 以为这个东西有多么的复杂 其实不是这样的 被一些网上博主给误导了 8266端我用的是 ESP8266 NONOS SDK 3 0 examples periphera
  • 【传感器课程设计——DHT11温湿度数据上传阿里云】课程设计论文大纲

    1 摘要 摘要可以分为中文和英文两部分 2 概述 2 1 课程设计背景 2 2 国内外研究现状 2 3 报告组织形式 3 系统设计 3 1 设计目标 3 2 设计方案 3 3 设计方案分析 3 4 程序结构 4 硬件设计 4 1 ESP82
  • NodeMcu arduino ESP8266WIFI 模块 WIFIAccessPoint 示例介绍,建立网络服务器进行TCP 请求 同步控制操作开发板的输出

    将ESP8266 创建网络服务器进行访问 同步控制操作开发板的输出 Create a WiFi access point and provide a web server on it 译 创建WiFi接入点并在其上提供web服务器 incl
  • 从零开始的ESP8266探索(04)-连接/建立网络

    文章目录 目的 连接到网络 建立新网络 更多方式 总结 目的 使用ESP8266主要就是为了用它的网络功能 使用网络功能首先的就是需要连接到一个现有的网络 STA模式 或是建立一个网络 soft AP模式 连接到网络 在Arduino fo
  • 【ESP8266 快速入门】示例5:Arduino环境实现OTA无线升级固件功能WebServer网页服务器方式

    主题 使用 ESP8266 Arduino环境实现OTA无线升级固件功能 由LED闪烁程序通过OTA升级为PWM呼吸灯程序 目录 主题 0 引言 1 环境准备 2 OTA步骤 2 1 OTA的基础程序 LED闪烁 2 2 OTA的升级程序
  • mipi介绍

    文章目录 1 MIPI简介 1 1 DSI layer 2 D PHY 2 1 D PHY介绍 2 2 电平状态 2 3 lane结构 2 4 data lane操作模式 2 4 1 escape mode和space one hot co
  • 编译freeRTOS “error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token”错误解决

    今日编译ESP8266 RTOS SDK的时候有个头文件声明了extern 结构体 结果一旦加入这个头文件编译就各种报错 提示error expected asm or attribute before token 一通搜索之后并未解决我的
  • 基于ESP8266的CMSIS-DAP调试器

    前言 前段时间用8266制作了一个STM32的下载器 可以进行远程下载固件 不过我们用STM32的时候 经常需要进行各种调试 这时候一个调试器就很重要了 于是我想到也许可以做一个无线调试器 本来我打算自己写一个的 不过在github发现居然
  • 制作OLED图标

    制作OLED图标 陈拓 2021 06 24 2021 06 26 1 概述 制作用于OLED显示的图标 获取C语言图像点阵数据 2 图标库 先准备图标图像 可以从图标库中找需要的图案 下面两个是我常用的图标网站 2 1 Font Awes
  • Linux:从用户空间实例化:eeprom new_device

    环境 x86 Ubuntu 14 04 我想获得类似的东西 i2c0 eeprom eeprom 50 compatible at 24c32 reg lt 0x50 gt 但因为在 x86 中没有可用的设备树 所以我遵循i2c insta
  • 如何为连接到 I2C gpio 扩展器的虚拟 mdio-gpio 设备配置 ACPI *.asl

    我正在使用 Q7 模块 x86 并尝试在 Linux 上使用 ACPI SSDT Overlay 配置我们的外设 但我对此很挣扎 我想我误解了ACPI的一些核心概念 Problem CPU gt I2C gt PCA9575 GPIO Ex
  • HAL 锁定和解锁函数如何使用以及为什么?

    我试图理解另一位程序员编写的代码 它使用了I C http en wikipedia org wiki I C2 B2C通信以将数据写入 STM32 微控制器的 EEPROM 一般来说 我理解他的代码是如何工作的 但我不明白他为什么使用HA
  • ESP8266 I2C从机不确认数据

    我有一个 TM4C123 处理器作为 I2C 主处理器 一个 ESP8266 作为从处理器 对于 ESP 我使用的是 Arduino IDE 并在 2 5 2 版安装了 ESP8266 支持 它应该支持 I2C 从模式 但是 我无法让它工作
  • 使用 SPIFFS 加载文件时出现问题 (ERR_CONTENT_LENGTH_MISMATCH)

    好吧 这两天我一直在研究这个问题 但我仍然觉得我一无所获 我最近开始使用SPIFFS 文件系统 for Arduino开发于呼扎 ESP8266像FSBrowser ino例如 虽然它在分离代码方面非常出色 但随着我的代码不断增长 它在稳定
  • esp8266互联网交换机问题

    我正在尝试制作一个门继电器开关系统 我可以通过端口转发从任何地方进行操作 我找到了一个非常有用的指南和代码 我的程序基于 https openhomeautomation net control a lamp remotely using

随机推荐

  • LINUX基础试题大全(3)

    说明 此文章由于题数庞大 为方便阅读本人将其分为四篇文章为大家分享 答案会今后不断进行更新 LINUX基础试题大全 1 填空题题 LINUX基础试题大全 2 单项选择题 LINUX基础试题大全 3 简答 LINUX基础试题大全 4 数据结构
  • C语言指针数组和数组指针[转]

    ps 文章属于总结性前 第一部分部分来自于 http www cnblogs com hongcha717 archive 2010 10 24 1859780 html 数组指针 也称行指针 定义 int p n 优先级高 首先说明p是一
  • 车载通信——J1939故障码

    一 诊断 UDS是统一诊断系统 冻结帧 出现故障码时 ECU存储故障码出现时的数据 就是冻结帧 二 J1939故障诊断 SAE J1939应用层定义了12种诊断报文 Diagnostic Message DM 诊断故障码 DTC 故障码 可
  • eval(function(p,a,c,k,e,d) javascrip类型代码 解决办法

    eval function p a c k e d e function c return c35 String fromCharCode c 29 c toString 36 if replace String while c d e c
  • 均衡器--时域均衡,频域均衡,无限长迫零(Zero force\ZF)均衡器,有限长时域迫零(ZF)均衡器,无限长MSE均衡器

    均衡器 1 原因 2 线性均衡器 2 1时域均衡 2 2频域均衡 3 均衡器 3 1无限长迫零 Zero force ZF 均衡器 3 2有限长时域迫零 ZF 均衡器 3 3无限长MSE均衡器 4 性能比较 1 原因 之前讨论的是在AWGN
  • 【GitHubShare】适合练习python的编程类网站,可以边学边玩

    非常有意思的编程网站 leetcode pythontip Coding Games Codewars CodeCombat Checkio Cyber Dojo pythonchallenge Code Monkey leetcode l
  • 【Docker】Docker中启动redis

    1 使用命令 docker pull redis 来下载redis镜像 2 通过命令 docker images来查看redis镜像是否安装成功 3 安装成功后通过 docker run name java redis d redis 来运
  • 客户异常数据清洗详细教程——pandas

    前言 在不同行业中 我们经常会遇到一个麻烦的问题 数据清洗 尤其是当我们需要处理客户编码异常数据时 这个问题变得尤为重要 想象一下 许多银行都是以客户为单位管理数据的 因此每个客户都有一个独特的编码 在处理这些数据时 我们常常会面临以下问题
  • 前端常用的CSS工具库

    1 animista 在线查看自己需要的动画效果 比较常用 直接复制代码即可 官网 Animista CSS Animations on Demand 2 Animate css是一个现成的跨浏览器动画工具库 可用于您的 Web 项目 非常
  • 攻防世界:command_execution

    首先掌握命令执行漏洞 Command Execution 的知识 命令执行漏洞即使用者可以直接在Web应用中执行系统命令 从而获取敏感信息或者拿下shell权限 其造成的原因是Web服务器对用户输入命令安全检测不足 比如没加waf 导致恶意
  • matlab 指定坐标轴,matlab设置坐标轴范围

    设置x轴和y轴为想要的显示范围 可以使用set函数 以x轴的显示范围为0到10 y轴的显示范围为90到101为例 设置x轴范围和刻度 set gca XLim 0 10 X轴的数据显示范围 set gca XTick 0 1 10 设置要显
  • Flutter键盘遮挡输入框问题

    以下代码是在网上看到的 忘记具体的出处了 请谅解 作者 Created by H on 2019 1 23 11 08 介绍 解决输入框被遮挡问题 import package flutter material dart import pa
  • C++面向对象设计原则学习笔记

    原则一 依赖倒置原则 DIP 高层模块 稳定 不应该依赖于底层模块 变化 二者都应该依赖于抽象 稳定 抽象 稳定 不应该依赖于实现细节 变化 实现细节应该依赖于抽象 稳定 原则二 开放封闭原则 OCP 对外扩展开放 对更改封闭 类模块应该是
  • 取模!了解一下!

    嘤嘤嘤 快速幂取模都不会了 自闭了 取模运算 Modulo Operation 和取余运算 Complementation 两个概念有重叠的部分但又不完全一致 主要的区别在于对负整数进行除法运算时操作不同 取模主要是用于计算机术语中 取余则
  • 面向对象-继承

    继承 概念 继承父类的属性和行为 使得子类对象可以直接具有与父类相同的属性 相同的行为 子类可以直接访问父类中的非私有的属性和行为 继承是多态的前提 如果没有继承 就没有多态 特点 java只能单继承 但可以多层继承 a继承b b继承c 那
  • kafkatemplate无法注入_Spring Boot和Kafka实战自定义复杂配置示例

    这篇博客文章展示了如何配置Spring Kafka和Spring Boot以使用JSON发送消息并以多种格式接收它们 JSON 纯字符串或字节数组 基于此配置 您还可以将Kafka生成器从发送JSON切换到其他序列化方法 此示例应用程序还演
  • RabbitMQ--基础--10.4--优先级队列

    RabbitMQ 基础 10 4 优先级队列 1 优先级队列 指的是 具有高优先级的队列 优先级高的消息具备优先被消费的特权 可以通过 设置 x max priority 来设置 优先级队列 如果在消费者的消费速度远大于生产者的速度 且 B
  • 机票预订系统uml类图_产品经理必学UML(二):用例图

    上一篇中介绍了UML中的类图 本篇笔者将与大家介绍UML中的用例图的三个方面内容 用例 Use Case 参与者 Actor 参与者 用例之间的关系 用例图 Use Case Diagrame 描述了人们希望如何使用一个系统 将相关用户 用
  • java listnode 合并链表_java实现两个有序单链表合并

    本次分享的事两个有序单链表的合并 遍历方法递归 非递归 节点类 auther lawt date 2018 11 4 08 Description 结点信息 public class Node 为了方便 这两个变量都使用public 而不用
  • ESP8266如何使用u8g2(I2C)驱动SH1106的OLED

    u8g2是一款单色图形库 非常适合12864之类的显示屏 基本上支持了市面上的主流显示控制器 可是偏偏对SH1106不是那么友好 使用起来不是很方便 打开IDE的示例程序可以看到对SH1106列出来的几乎都SPI通信方式 仅仅只有一条是使用