找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

关于SSD1306驱动的OLED低四位地址指定的困惑

查看数: 4410 | 评论数: 7 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-5-3 15:00

正文摘要:

新手最近刚刚开始学OLED。照着资料给的源码看的时候在OLED屏幕定位的函数时遇上了理解问题。如下所示函数,OLED_WR_byte是向SSD1306写入一个字节的指令函数 void OLED_set_pos(unsigned char x, unsigned char y) ...

回复

ID:227832 发表于 2020-6-12 22:29
我也遇到这个问题,丢弃|1后正常,谢谢!
ID:282850 发表于 2020-5-7 16:13
OHHO 发表于 2020-5-7 12:42
写了两版不同的定位函数(主体函数去掉0x01,另一个保留0x01作对比),分别让其在0xb0和0xb1页点亮第一列。
...

从你试验看出,是原来写错了。要不就是不让写0列,也有一种可能,0列被外壳窗沿挡住不用。
丢弃|1,放心用吧。
ID:686782 发表于 2020-5-7 09:29
f556 发表于 2020-5-6 15:54
手上的程序与你这个完全一样,4线SPI,由于搞了两个都用IIC,没关注这问题。你看的很仔细。
按上图,确 ...

多谢指教!
这就去试试
ID:282850 发表于 2020-5-6 16:06
        for(m=0;m<8;m++)
        {
                Write_IIC_Command(0xb0+m);                //page0-page1
                Write_IIC_Command(0x00);                //low column start address
                Write_IIC_Command(0x10);                //high column start address
                for(n=0;n<132;n++)
                        {
                                Write_IIC_Data(fill_Data);
                        }
IIC的程序中,确实是高4位0x10,低4位0x00就OK的。还是测试一下不要|1看看。
ID:282850 发表于 2020-5-6 15:54

手上的程序与你这个完全一样,4线SPI,由于搞了两个都用IIC,没关注这问题。你看的很仔细。
按上图,确实不可理解第3句|1,如按图4行21命令,或1可有道理,即页址模式,但第2行又有问题。
分析可能的原因:
1、原作者写错了。
2、估计SEG接线中0号是空的,列址从1~128,不是0~127.

解决方法:实测写0、1、2列0xff看看
把|1删除看看。
上述两个试验完就知道原来是否正确。

jjq.png (147.75 KB, 下载次数: 43)

jjq.png
ID:686782 发表于 2020-5-6 11:43
顶一顶,求大佬解惑

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表