改写OLED完整一个扇区需要128还是256个16进制数

img


OLED完整改写一个扇区需要128还是256个16进制数。我的测试是只需要128个16进制数就可以把扇区直接改写,为什么会是这样?

一列需要2个16进制数 ?
正确的说法是:一列是 1 个字节。(8个bit)
总共128列就需要128个字节
你定义的数组 uint8_t 是一个字节
const uint8_t BMP3[] 是 128 个字节

OLED的一个扇区可以理解为一块显示区域,其大小为128 x 64像素。每个像素只能为黑或白,因此每个像素点对应一个二进制位。

由于OLED屏幕采用的是列扫描式显示,一个扇区的一行数据需要通过有限状态机组成的控制电路,将其拆分为若干个组,每个组包含8列显示数据。因此,每组需要64个二进制位,也就是8个字节的数据。而每个扇区有8行数据,因此对应的数据字节数为:

8 * 8 = 64

也就是说,一个扇区需要64个字节或者512个二进制位来表示。如果采用16进制表示,则每个字节对应两个16进制数,因此一个扇区需要:

64 * 2 = 128

或者说,

512 * 2 = 1024

个16进制数来表示一个完整的扇区。

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7749628
  • 这篇博客你也可以参考下:我最终让我的OLED刷新速度跟老师的一样快
  • 除此之外, 这篇博客: 0.96寸OLED屏硬件驱动电路中的 0.96寸OLED屏硬件驱动电路 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 该电路适合把OLED驱动电路集成到自己的板子上,最终的原理图和PCB已经上传CSDN,可直接点击链接下载:
    https://download.csdn.net/download/qq_31785559/59594346

    因为自己要做一个小体积的控制电路需要用到OLED显示屏,但是传统的四针IIC通信的OLED屏体积太大,所以就想着把集成SSD1315的0.96OLED屏浓缩到电路上。传统的四针IIC通信OLED屏幕如下:
    在这里插入图片描述
    看了很多参考电路,包括一些模块的官方手册,最终的电路如下(7脚悬空不接):
    第一版OLED驱动电路
    但是板子收到后,无论怎么调试都不管用,屏幕测试点不亮,但是放在标准的OLED模块上显示却正常,说明是电路问题,屏幕没问题。查了很多资料,官方的datasheet里的电路也是这个,但是就是不管用。

    后来看到一个电路,7脚并不是悬空不接,而是接了GND,抱着试一试的心态,从第七脚飞线到GND,最终屏幕成功点亮。
    在这里插入图片描述
    红色的线就是第七管脚飞线GND,最终的原理图如下,需要注意的是屏幕是3.3V供电:

    在这里插入图片描述
    我参考的电路PCB如下,原理图sch文件和和PCB文件我放在另一个链接中,可以自行下载:
    在这里插入图片描述