IIC操作
void OLED_WR_Byte(u8 dat,u8 cmd)
{
IIC_Start();
IIC_Send_Byte(0x78);
IIC_Wait_Ack();
if(cmd == OLED_CMD)
IIC_Send_Byte(0x00);
else
IIC_Send_Byte(0x40);
IIC_Wait_Ack();
IIC_Send_Byte(dat);
IIC_Wait_Ack();
IIC_Stop();
}
OLED 初始化
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(0xA0,OLED_CMD); //¶ÎÖض¨ÒåÉèÖÃ,bit0:0,0->0;1,0->127;
OLED_WR_Byte(0xC0,OLED_CMD); //ÉèÖÃCOMɨÃè·½Ïò;bit3:0,ÆÕͨģʽ;1,Öض¨Òåģʽ COM[N-1]->COM0;N:Çý¶¯Â·Êý //C0
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(0x00,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); //¿ªÆôÏÔʾ
BMP取模信息,大小 128*64:
OLED_WR_Byte(0xA0,OLED_CMD);
OLED_WR_Byte(0xC0,OLED_CMD);
对应取模方式:阴码+逆向+列行式