写命令函数,写入0x78,表示选中器件。器件地址可以通过电阻不同的连接改变,具体参考使用说明。写入0x00,表示接下来要向芯片内写入的是指令。
同上,不过写入0x40,表示接下来要向芯片内写入的是数据。
接下来看给定的芯片初始化函数
写入命令0x20是表明要设置内存地址模式,后续的第三个写入的命令,是所选择得具体模式,有三种:水平地址模式(00),垂直地址模式(01),页地址模式(10)
水平地址模式:当处于此模式时,列地址指针将自动增加1。如果列地址指针到达列终止地址, 列地址指针将复位到列起始地址, 且页地址指针将自动增加1。即是从起点开始横着写,写到头以后回到下一行的列起始地址。
垂直地址模式:当处于此模式时, 页地址指针将自动增加1。如果页地址指针到达页终止地址, 页地址指针将复位到页起始地址, 且列地址指针将自动增加1。即是从起点开始竖着写,写到头以后回到下一列的页起始地址。
页地址模式:当处于此模式时, 列地址指针将自动增加1。如果列地址指针到达列终止地址, 列地址指针将复位到列起始地址, 但页地址指针不会改变。
为了写入下一页的内容, 必须设置新的页地址和列地址。
页地址看起来麻烦,但是行列都是可控的,这里选择的就是页地址模式。
在页地址模式下,需要如下指令来确定起始点的行列地址
指令0xby,表明起始地址是第y页,也就是第y行,由于使用的是12864,所以最多8行,故y的范围是0-7;
列起始地址由指令0x1m和0x0n来确定,m是高四位,n是低四位,使用12864,则m,n合起来的8位数数值范围在0-127之间。
根据以上所述,自己编写了一个以某行某列为起始位置的字符的显示函数,如下:
fill_data是需要写入的字符的编码构成的数组。
至此,可以在屏幕上任意位置显示想要显示的字符。
Part 3:其他资料补充
1,打点方式
2,OLED其他控制指令(转载,侵删)
作者: 狂野的牛哥, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-3867932.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
curton 2019-4-23 15:44
houzelong_108081826 2019-4-8 09:18