//全屏显示 -- Fill_Screen(0x00)可用作清屏 void CN_SSD1306::Fill_Screen(unsigned char fill_Data) { unsigned char m,n; for(m=0;m<8;m++) { Write_IIC_Command(0xb0+m); //page0-page1 Write_IIC_Command(0x00); //low column start address Write_IIC_Command(0x10); //high column start address Begin_IIC_Data(); for(n=0;n<128;n++) { Write_IIC_Byte(fill_Data); } IIC_Stop(); } }
void OLED_WR_Byte(unsigned dat,unsigned cmd) { if(cmd) { Write_IIC_Data(dat); } else { Write_IIC_Command(dat); } }
//SSD1306初始化 void CN_SSD1306::Initial() { Write_IIC_Command(0xAE);//display off Write_IIC_Command(0x00);//set lower column address Write_IIC_Command(0x10);//set higher column address Write_IIC_Command(0x40);//set display start line Write_IIC_Command(0xB0);//set page address Write_IIC_Command(0x81);//对比度设置 Write_IIC_Command(0xCF);//0~255(对比度值……效果不是特别明显) Write_IIC_Command(0xA1);//set segment remap Write_IIC_Command(0xA6);//normal / reverse Write_IIC_Command(0xA8);//multiplex ratio Write_IIC_Command(0x3F);//duty = 1/64 Write_IIC_Command(0xC8);//Com scan direction Write_IIC_Command(0xD3);//set display offset Write_IIC_Command(0x00); Write_IIC_Command(0xD5);//set osc division Write_IIC_Command(0x80); Write_IIC_Command(0xD9);//set pre-charge period Write_IIC_Command(0xF1); Write_IIC_Command(0xDA);//set COM pins Write_IIC_Command(0x12); Write_IIC_Command(0xDB);//set vcomh Write_IIC_Command(0x40); Write_IIC_Command(0x8D);//set charge pump enable Write_IIC_Command(0x14); Write_IIC_Command(0xAF);//display ON }