oled----SSD1306_IIC

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);

对应取模方式:阴码+逆向+列行式

 

 

你可能感兴趣的:(stm32)