近日淘宝买了12864oled小屏,是4线spi口的。由于自己驱动程序写得糟,只有在某些脚接触不良时偶然能够点亮。苦于无法与ssd1306通信,连其状态都无法了解,于是查资料将4线spi改为iic。经过努力,iic从ssd1306已经得到了准确的ack应答(尝试过改变地址码和“控制码”,立刻就得不到ack)。但是,找了网上若干资料仍然没有找到合适的ssd1306初始化的命令序列。
现求ssd1306初始化命令序列,做过串行对通ssd1306的各位给些指点也非常欢迎。商家似乎无力给足够技术支持了。
预先致谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
电路和我的差不多,我也改为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); //开启显示
一周热门 更多>