iic通ssd1306正常,但oled屏不亮。[已经解决]

2020-02-06 10:11发布

近日淘宝买了12864oled小屏,是4线spi口的。由于自己驱动程序写得糟,只有在某些脚接触不良时偶然能够点亮。苦于无法与ssd1306通信,连其状态都无法了解,于是查资料将4线spi改为iic。经过努力,iic从ssd1306已经得到了准确的ack应答(尝试过改变地址码和“控制码”,立刻就得不到ack)。但是,找了网上若干资料仍然没有找到合适的ssd1306初始化的命令序列。

现求ssd1306初始化命令序列,做过串行对通ssd1306的各位给些指点也非常欢迎。商家似乎无力给足够技术支持了。

预先致谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
55条回答
Name_006
1楼-- · 2020-02-09 09:11
longriver05 发表于 2012-3-27 07:19

撒.jpg (226.25 KB, 下载次数: 19)

下载附件

2012-3-29 16:07 上传

longriver05
2楼-- · 2020-02-09 10:08
Name_006 发表于 2012-3-29 16:08
OK 啦 解决问题  再次感谢网友 lisn3188  的帮助
http://www.ourdev.cn/forum.php?mod=viewthread&tid=5 ...

电路和我的差不多,我也改为4线的spi了,但一直没初始化成功,VCC输出电压一直为2.85V左右,最开始手册没看清楚,把28脚的电压输出和电压输入接在了一起,不知道有没有弄坏了

我的初始化代码:

OLED_RES0;
        Delay(80);
        OLED_RES1;
       Delay(40);
            WriteCommand(0xAE); //关闭显示
        WriteCommand(0xD5); //设置时钟分频因子,震荡频率
        WriteCommand(0x80);   //[3:0],分频因子;[7:4],震荡频率
        WriteCommand(0xA8); //设置驱动路数
        WriteCommand(0X3F); //默认0X3F(1/64)
        WriteCommand(0xD3); //设置显示偏移
        WriteCommand(0X00); //默认为0

        WriteCommand(0x40); //设置显示开始行 [5:0],行数.
                                                                                                            
        WriteCommand(0x8D); //电荷泵设置
        WriteCommand(0x14); //bit2,开启/关闭
        WriteCommand(0xd8); //设置内存地址模式
        WriteCommand(0x05); //[1:0],00,列地址模式;01,行地址模式;10,页地址模式;默认10;
        WriteCommand(0xA1); //段重定义设置,bit0:0,0->0;1,0->127;
        WriteCommand(0xC8); //设置COM扫描方向;bit3:0,普通模式;1,重定义模式 COM[N-1]->COM0;N:驱动路数
        WriteCommand(0xDA); //设置COM硬件引脚配置
        WriteCommand(0x12); //[5:4]配置
                 
        WriteCommand(0x81); //对比度设置
        WriteCommand(0xCF); //1~255;默认0X7F (亮度设置,越大越亮)
        WriteCommand(0xD9); //设置预充电周期
        WriteCommand(0xf1); //[3:0],PHASE 1;[7:4],PHASE 2;
        WriteCommand(0xDB); //设置VCOMH 电压倍率
        WriteCommand(0x40); //[6:4] 000,0.65*vcc;001,0.77*vcc;011,0.83*vcc;

        WriteCommand(0xA4); //全局显示开启;bit0:1,开启;0,关闭;(白屏/黑屏)
        WriteCommand(0xA6); //设置显示方式;bit0:1,反相显示;0,正常显示       
        FillArea(0,63,0,127,0x00);
        
        WriteCommand(0xAF); //开启显示       
Name_006
3楼-- · 2020-02-09 13:59
 精彩回答 2  元偷偷看……
shjw
4楼-- · 2020-02-09 13:59
大家都有没有调试成功,一个东西日期短我都不敢用
zhaochuanyuAVR
5楼-- · 2020-02-09 16:01
同志们 ! 4线SPI的有没有点亮的啊???我的一直没亮   而且初始化后  屏幕会有些热!
huhuan6
6楼-- · 2020-02-09 19:38
有用SPI方式点亮的吗,我也在调这个东西,一直点不亮!

一周热门 更多>