今天学了下OLED的使用,说下心得吧
我用的是0.96寸的,i2c通讯,就说下oled显示的原理吧.
首先oled上的每一个像素都会发光,总共有12868个像素点,所以我想显示什么图案就可以控制像素点来发光,那要怎么控制呢,在这里说一种模式下的控制,页地址模式,在该模式下,oled分成八行,宽是64个像素,分成八分就是8128个像素,现在一份就有八行,128列,我们写入一个数据一个8位的二级制数据,那这就它这一列的宽,0为不亮,1为亮,那这样列怎么确定呢,我们知道现在有128列,00h~ffh,是不是有128个数,那刚好可以用写入这个范围的数来表示,通过命令(00h-0Fh)设置列起始地址低位,通过命令(10h-1Fh)设置列起始地址高位(参考数据手册)。
所以我们在梳理下
如果想显示坐标为 (10,20)的一个点要怎么做呢(页地址模式下)
通过命令(B0h-B7h)设置目标显示位置页起始地址
y坐标为20 所以呢 是第三页,命令的 为 0xb2
OLED_WR_Byte (0xb6,OLED_CMD); //设置页地址(0~7)
20%8=4 所以是第三页的第四行 0000 1000
x坐标为10 在第十列
OLED_WR_Byte (0x0A,OLED_CMD); //设置显示位置—列低地址
OLED_WR_Byte (0x10,OLED_CMD); //设置显示位置—列高地址
因为第三页的第四行 0000 1000 那么我们写数时写入 0x01
OLED_WR_Byte(0x01,OLED_DATA);
这就可以了,还有很多细节没写,就先大致写到这吧