这里用的OLED模块是SSD1306的
硬件
- SSD1306只支持3.3V供电
- SSD1306支持4中接口:6800、 8080,SPI,IIC
- 通过引脚BS1和BS2接口的模式。
- 如果是IIC模式,SCL对应D0,SDA对应D1,D2(需要把D1和D2连在一起然后接入MCU的SDA)
- OLED_RST 是复位线, RST 上的低电平复位
- 15脚DC脚设置IIC设备的地址。如下图所示,SA0为对应DC引脚。
- 如果DC脚接GND,最终可得到, SSD1306 器件地址为“ 0111100”即 0x3C。读操作地址就为 0x79,即 0111 1001;写操作地址就为 0x78,即 0111 1000。- D/C#:这个引脚是用于告诉SSD1306现在发送的data是命令还是数据。但是在IIC传输模式时,这个引脚用于控制IIC设备的地址。
软件部分
- 1个像素点,只需要一个2进制位表示。
- 1个page,可以表示128*8个像素点
- SSD1306里面的GRAM如下所示。
- 读写入GRAM的方式两种:页模式和行模式
- 屏幕像素点与GRAM的映射关系,如下图。PAGE2这一页对应的是屏幕的COM16 ~ COM23行,也就是第17~24行。
- 数据的高低位如LSB,MSB所示。如果对PAGE2写入数据0x85.则填充后的数据如下。所以取模方式是逐列式,