ARM外设——0.96寸oled

外观介绍

作为单片机常用显示设备oled具有体积小巧,方便移植,成本低等优点,特别是在需要显示一些参数字符时小oled往往 非常合适。

0.96寸oled支持串行(IIC或SPI)和8080并行通信,由于其本身像素点只有128*64串行通信也不会占用太多的传输时间切串行更方便硬件连接与移植,故我们接下来主要介绍串行方式.这是常见的七脚oled包含电源引脚 VCC地引脚GND以及串行时钟引脚和数据引脚,命令数据选择引脚 DC,片选引脚CS和复位引脚RST

模块显存

0.96寸oled内部集成了一个SSD1306的显存总共为128*64bit大小,SSD1306将这些显存分为了8页。每页包含了128个字节,总共8页,这样刚好是128*64的点阵大小。

我们在修改oled的显示内容时通常会先在单片机内部开辟一块128*64的缓存,将该缓存中的对应数据进行修改后,刷新一次屏幕(将单片机内部缓存的数据传输到oled的缓存空间并刷新显示)。

SSD1306的常用命令

命令0X81:设置对比度。包含两个字节,第一个0X81为命令,随后发送的一个字节为要设置的对比度的值。这个值设置得越大屏幕就越亮。

命令0XAE/0XAF:0XAE为关闭显示命令;0XAF为开启显示命令。

命令0X8D:包含2个字节,第一个为命令字,第二个为设置值,第二个字节的BIT2表示电荷泵的开关状态,该位为1,则开启电荷泵,为0则关闭。在模块初始化的时候,这个必须要开启,否则是看不到屏幕显示的。

命令0XB0~B7:用于设置页地址,其低三位的值对应着GRAM的页地址。

命令0X00~0X0F:用于设置显示时的起始列地址低四位。

命令0X10~0X1F:用于设置显示时的起始列地址高四位。

oled初始化过程

OLED刷新过程

移植 工作

对该驱动的移植主要就是对写命令/数据函数的修改

//向SSD1306写入一个字节。
//dat:要写入的数据/命令
//cmd:数据/命令标志 0,表示命令;1,表示数据;
void OLED_WR_Byte(u8 dat,u8 cmd);

其他最复杂的缓冲区数据的计算修改对于任意平台都适用

发布了25 篇原创文章 · 获赞 6 · 访问量 3523

猜你喜欢

转载自blog.csdn.net/bojin4564/article/details/105224680