0.96寸OLED 的驱动原理及代码(IIC模式) | 您所在的位置:网站首页 › oled的驱动程序解释 › 0.96寸OLED 的驱动原理及代码(IIC模式) |
前言
先上效果图 这类屏幕大部分是由SSD1306来驱动的,datasheet在这:SSD1306Z 英语好的直接看这个PDF就明白了,英语不好的…还不赶紧好好学习一下,下面也是挑手册内容讲一讲,图也是手册里面截的 关于IIC总线,就不啰嗦了。 正文 从机地址 b7b6b5b4b3b2b1b0011110SA0R/W_SA0用来扩展从机地址,一般硬件设置为0。 b0指明读写操作的,一般写的比较多,这一位是0。 所以地址为0x78 屏幕像素与GDDRAM (Graphic Display Data RAM)屏幕有128列(Column ),64行(Row),共128*64像素点,每8行为1页(PAGE),共有8页。 用PAGE2举个例子,每列都用一个字节存储,一页PAGE就需要128个bytes,注意高位在下。 总的来看就是这样,总共需要128*8个bytes。 0x78, 0x00, 0xXX, 0xXX, 0xXX, 0xXX(若干指令) 发送数据 0x78表示从设备地址,0x40表示写数据到DDRAM里面,一般来说是128个。0x78, 0x40, 0xXX (128bytes的数据) 至于读操作基本不会用到,不再赘述,有兴趣自己尝试。 指令介绍这个写的很详细,建议看看 https://wlink.blog.csdn.net/article/details/81329770 这个指令翻译的比较全 https://wenku.baidu.com/view/e8307ca72f60ddccda38a0e0.html Set Lower Column Start Address for Page Addressing Mode (00h~0Fh) 在地址模式为Page Addressing,列开始位置的低四位(0h~Fh) Set Higher Column Start Address for Page Addressing Mode (10h~1Fh) 在地址模式为Page Addressing,列开始位置的高四位(0h~Fh) Set Memory Addressing Mode (20h) 设置内存地址模式,这是一个两个字节的命令,第二个字节的低两位确定了模式 00: Set Column Address (21h) 设置列地址,三字节命令,二三字节分别为列开始和结束位置,用于模式00,01。 Set Page Address (22h) 设置页地址,三字节命令,二三字节分别为页开始和结束位置,用于模式00,01。 这两个相当于设置了矩形显示的边界。 Set Display Start Line (40h~7Fh) 设置显示开始列 Set Contrast Control for BANK0 (81h) 双字节命令,设置对比度00h~FFh Set Segment Re-map (A0h/A1h) Segment重映射,也就是列重映射(相当于左右翻转) Entire Display ON (A4h/A5h) 全屏点亮(A5h),显示内容随着DDRAM刷新(A4h)。 Set Normal/Inverse Display (A6h/A7h) 反色显示 Set Multiplex Ratio (A8h) 设置复用率 Set Display ON/OFF (AEh/AFh) 显示开关 Set Page Start Address for Page Addressing Mode (B0h~B7h) Page Addressing模式下,Page的地址(0h~Fh) Set COM Output Scan Direction (C0h/C8h) COM显示输出方向,也就是行重映射(相当于上下翻转) Set Display Offset (D3h) 双字节命令,显示偏移 Set Display Clock Divide Ratio/ Oscillator Frequency (D5h) 设置显示时钟分频值/震荡频率,双字节命令 Set Pre-charge Period (D9h) 设置预充电周期 Set COM Pins Hardware Configuration (DAh) 设置硬件PIN的连接方式 Set VCOMH Deselect Level (DBh) 设置Vcomh NOP (E3h) 空指令 Horizontal Scroll Setup (26h/27h) 水平滚动设置 Continuous Vertical and Horizontal Scroll Setup (29h/2Ah) 垂直和水平滚动配置 Deactivate Scroll (2Eh) 禁用滚动 Activate Scroll (2Fh) 启用滚动 Set Vertical Scroll Area(A3h) 设置垂直滚动区域 命令详细格式看手册吧,不在翻译了。 驱动代码使用的是STM32CubeMX 6.0.1和MDK5.32,工程如下 链接:https://pan.baidu.com/s/1LxD3pvg99jUowFiwYym3pw 提取码:zq08 |
CopyRight 2018-2019 实验室设备网 版权所有 |