oled 初始化不成功,一直花屏

2019-07-20 06:16发布

使用龙邱七脚oled    采用四线spi 接口   老是花屏,不知道问题出在哪?


  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 ;                                   //PA4(DC 写数据  控制指令 )     OLED_WR 对应 DCMI_HREF
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式         
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化
       
        //GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;         
        //GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化       
       
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;                                  //PB7 (片选)  OLED_CS 对应 DCMI_VSYNC,                       
        GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化               

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;                                    //PD6 7  (SCL SDA)
        GPIO_Init(GPIOD, &GPIO_InitStructure);//初始化               
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;                                                  //PG15  (RST)
        GPIO_Init(GPIOG, &GPIO_InitStructure);//初始化
       
       
        OLED_SDIN=1;          //SDA
        OLED_SCLK=1;        ///SCL
#endif
        OLED_CS=1;    //=1片选
        OLED_RS=1;           //SCL
       
        OLED_RST=0;
        delay_ms(100);
        OLED_RST=1;



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

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

        OLED_WR_Byte(0xA4,OLED_CMD); //全局显示开启;bit0:1,开启;0,关闭;(白屏/黑屏)
        OLED_WR_Byte(0xA6,OLED_CMD); //设置显示方式;bit0:1,反相显示;0,正常显示                                                              
        OLED_WR_Byte(0xAF,OLED_CMD); //开启显示         
        OLED_Clear();

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
cercatrova
1楼-- · 2019-07-20 09:01
 精彩回答 2  元偷偷看……
douxiaolingyun
2楼-- · 2019-07-20 09:14
试试能不用清屏命令
douxiaolingyun
3楼-- · 2019-07-20 14:59
 精彩回答 2  元偷偷看……

一周热门 更多>