查找资料发现是OLED 128*32,建议统一用3.3V
128*32建议使用SSD1316的
- void SSD1316_Clear(void)
- {
- unsigned char i,n;
- for(i=0;i<4;i++)
- {
- SSD1316_Write_CMD(0xb0+i); //设置页地址(0~3)
- SSD1316_Write_CMD(0x00); //设置显示位置—列低地址
- SSD1316_Write_CMD(0x10); //设置显示位置—列高地址
- SSD1316_Write_DATA_A();
- for(n=0;n<128;n++)
- {
- SSD1316_Write_DATA_B(0x00);
- }
- SSD1316_Write_DATA_C();
- }
- }
-
- void SSD1316_Display_16x32(unsigned char x,unsigned char dat) //x=0~112,dat=0~17
- {
- unsigned char i;
- SSD1316_Write_CMD(0x20); //Set Memory Addressing Mode(设置内存寻址模式)
- SSD1316_Write_CMD(0x01); //0x01(垂直寻址模式)
- SSD1316_Write_CMD(0x21); //Set Column Address(设置列地址)
- SSD1316_Write_CMD(x); //(列开始地址)
- SSD1316_Write_CMD(x+15); //(列结束地址)
- SSD1316_Write_CMD(0x22); //Set Page Address(设置页地址)
- SSD1316_Write_CMD(0x00); //0
- SSD1316_Write_CMD(0x03); //3
- SSD1316_Write_DATA_A();
- for(i=0;i<64;i++)
- {
- SSD1316_Write_DATA_B(ASCII[dat][i]);
- }
- SSD1316_Write_DATA_C();
- SSD1316_Write_CMD(0x20); //Set Memory Addressing Mode(设置内存寻址模式)
- SSD1316_Write_CMD(0x02); //0x02(页寻址模式)
- }
-
- void OLED_Set_Pos(unsigned char x,unsigned char y)
- {
- SSD1316_Write_CMD(0xb0+y);
- SSD1316_Write_CMD(((x&0xf0)>>4)|0x10);
- SSD1316_Write_CMD((x&0x0f));
- }
-
- void OLED_DrawBMP(unsigned char x,unsigned char y,unsigned char sizex, unsigned char sizey,unsigned char BMP[])
- {
- unsigned int j=0;
- unsigned char i,m;
- sizey=sizey/8+((sizey%8)?1:0);
- for(i=0;i<sizey;i++)
- {
- OLED_Set_Pos(x,i+y);
- SSD1316_Write_DATA_A();
- for(m=0;m<sizex;m++)
- {
- SSD1316_Write_DATA_B(BMP[j++]);
- }
- SSD1316_Write_DATA_C();
- }
- }
-
- void SSD1316_Init(void)
- {
- SSD1316_Write_CMD(0xAE); //Set Display OFF(设置显示关)
- SSD1316_Write_CMD(0xA1); //Set Segment Remap(设置列重映射)
- SSD1316_Write_CMD(0xA8); //Set Multiplex Ratio(设置行通道数)
- SSD1316_Write_CMD(0x1F); //31
- // SSD1316_Write_CMD(0xC8); //Set COM Output Scan Direction(设置行重映射)
- SSD1316_Write_CMD(0xD3); //Set Display Offset(设置垂直偏移量)
- SSD1316_Write_CMD(0x00); //0
- SSD1316_Write_CMD(0xD5); //Set Display Clock Divide Ratio/Oscillator Frequency(设置显示时钟分频器、振荡器频率)
- SSD1316_Write_CMD(0xF0); //0xF0
- SSD1316_Write_CMD(0x8D); //Charge Pump Setting(设置电荷泵)
- SSD1316_Write_CMD(0x14); //0x14
- SSD1316_Write_CMD(0xAF); //Set Display ON(设置显示开)
- SSD1316_Clear();
- // SSD1316_Write_CMD(0x81); //Set Contrast Control(设置对比度)
- // SSD1316_Write_CMD(0x7F); //127
- // SSD1316_Write_CMD(0xA7); //Set Normal/Inverse Display(设置反相显示)
- // OLED_DrawBMP(0,0,128,32,BMP1);
- }
复制代码
|