OLED 行列设置一篇搞懂

OLED 行列设置一篇搞懂


OLED

我们大家的目的就是想让我们的OLED显示出多彩的图案,但是我们该在去做呢,其实这些的是指都是去写寄存器来实现的(下图来源于网
络)

commands

我相信,大家应该看了很多东西都没用懂,那些博客写了设置列地址的低四位,和设置列的高四位,页面地址,但你看完一定不太懂,这个效果是什么,有2个位,我该怎么设置呢,那接下来我就让大家高明白 😄

如上图的屏幕为 64 -128 (行-列) ,这个指的是屏幕上的像素点, 记住啦!!! 很关键

页地址和列地址: 页地址其实就是指,屏幕按行被分为了几份的序号罢了,可能有点绕,弄个图大家就懂了1

看左边的按行分隔的表格,这就是页地址的真正含义,既然是叫页地址,那就说明这不是一行一行的,而是多行组合起来分成一组,而这里的一个页地址包含了8行,刚才说了屏幕的行的像素点有64个,那么就是说该OLED有8页,然后页地址的值按上图分布

再来说说列地址,列地址有2个,一个高四位,一个低四位,这个看起来会有点抽象,如果你每遇见过这种的话,看上图的右边部分,可以看出来,这个高四位(0x10 ~ 0x1f)和页地址一样吧列分区了,分成了16份,但是这个高四位只代表你在那个分区开始表示,如果不设置低四位,你永远只能设置列为一个分区的开端的开始位置,所以如果我要在一个分区随意设置列的位置,那么这个时候就要依靠低四位了(0x01 ~ 0x0f),不难看出 0x01 ~ 0x0f 长度为16,即一个分区中有16个像素点,那么这时候加上高低四位的配合,就能随便设置列的位置

细心的人会发现,那么高四位也有16,16*16 > 128 了,那么就说明是显示不完的,一般我们设高四位的范围在 0x00 ~ 0x07 ,7x16+16=128 ,就刚好是128个像素了

**显示: **这里还想再帮大家理清2个东西,一个是写命令,一个是写数据,我们设置行列就是通过写命令来实现的,那我们写数据的意义就是让已经初始化后了的OELD上的像素点亮起来,上面说过一页有8行,又因为只能一列一列的显示,一个数据的范围也就是(11111111~ 0)(8个1 ~ 0) ,也就是表现在列上的,且如果一次写数据的操作完了后,列数会自动加一(即,列往后移一列)

在这里插入图片描述

最后,如果你看了没懂的话,就再多看几次,如果看了几次了也还是有问题,那么打开你的 keil 拿上你的OELD开始干,动手吧,你会感悟的

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
很高兴听到您对u8g2 OLED库的兴趣。下面是一篇简短的文章,帮助您快速入门和使用u8g2 OLED库。 u8g2 OLED库是一个用于驱动各种OLED屏幕的库。它支持多种芯片和接口,包括I2C、SPI和并行接口。使用u8g2库可以轻松地控制OLED屏幕,使其显示文本、图形和动画。 以下是使用u8g2 OLED库的基本步骤: 1. 安装u8g2库 您可以在Arduino IDE的库管理器中找到u8g2库,安装后即可使用。 2. 初始化OLED屏幕 在您的Arduino代码中,首先需要初始化OLED屏幕。在初始化时,您需要指定OLED屏幕的型号、接口和引脚等信息。例如,以下代码初始化了一个128x64像素的OLED屏幕,使用I2C接口: ``` #include <U8g2lib.h> U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0); void setup() { u8g2.begin(); } ``` 3. 显示文本 使用u8g2库可以方便地在OLED屏幕上显示文本。以下代码在OLED屏幕上显示了一行文本: ``` u8g2.setFont(u8g2_font_ncenB08_tr); u8g2.drawStr(0, 10, "Hello World!"); ``` 在这里,我们指定了文本的字体和位置。 4. 显示图形 u8g2库还支持在OLED屏幕上显示各种图形,包括线条、矩形、圆形等。以下代码在OLED屏幕上绘制了一个矩形: ``` u8g2.drawFrame(10, 10, 20, 30); ``` 在这里,我们指定了矩形的位置和大小。 5. 刷新屏幕 在您的代码中完成文本和图形的绘制后,需要调用u8g2库的`sendBuffer()`函数将数据发送到OLED屏幕上。以下代码刷新了OLED屏幕: ``` u8g2.sendBuffer(); ``` 以上就是使用u8g2 OLED库的基本步骤。您可以根据自己的需要进行文本和图形的绘制,实现各种有趣的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值