抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

OLED

常见的OLED​显示屏,0.96寸,128*64

通用流程

  1. 开启显示(进入工作模式)
  2. 关闭显示(进入睡眠模式)
  3. 设置复用率
  4. 设置列引脚硬件配置
  5. 设置显示时钟分频值/振荡频率(刷新率)
  6. 设置预充电周期
  7. 设置VCOMH反压值
  8. 设置电荷泵开启
  9. 屏幕控制指令,反色、镜像反转、滚动、淡出、闪烁等动画效果

设置坐标位置

1
2
3
4
5
6
7
8
9
10
11
//指定操作的像素坐标
/*
X:0-127
y:0-7
*/
void OLED_Set_Pos(uint8_t x, uint8_t y)
{
OLED_WriteCommand(0xB0+y);
OLED_WriteCommand(((x&0xf0)>>4)|0x10);
OLED_WriteCommand((x&0x0f));
}

根据不同大小字体显示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//在指定位置显示一个字符,包括部分字符
//x:0~127
//y:0~63
//mode:0,反白显示;1,正常显示
//size:选择字体 16/12
void OLED_ShowChar_Pos(uint8_t x,uint8_t y,uint8_t chr,uint8_t SIZE)
{
unsigned char c=0,i=0;
c=chr-' ';//得到偏移后的值
if(x>Max_Column-1){x=0;y=y+2;}
if(SIZE ==16)
{
OLED_Set_Pos(x,y);
for(i=0;i<8;i++)
OLED_WriteData((uint8_t)F8X16[c*16+i]);
OLED_Set_Pos(x,y+1);
for(i=0;i<8;i++)
OLED_WriteData((uint8_t)F8X16[c*16+i+8]);
}
else
{
OLED_Set_Pos(x,y+1);
for(i=0;i<6;i++)
OLED_WriteData((uint8_t)F6x8[c][i]);

}
}

直接绘图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/***********功能描述:显示显示BMP图片128×64起始点坐标(x,y),x的范围0~127,y为页的范围0~7*****************/
void OLED_DrawBMP(uint8_t x0, uint8_t y0,uint8_t x1, uint8_t y1,uint8_t BMP[])
{
unsigned int j=0;
unsigned char x,y;

for(y=y0;y<y1;y++)
{
OLED_Set_Pos(x0,y);
for(x=x0;x<x1;x++)
{
OLED_WriteData(BMP[j++]);
}
}
}

谷歌恐龙字库

1
2
3
4
5
6
7
8
9
10
11
12
const uint8_t pic1[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xF8,
0xF8,0xFE,0xFF,0xFF,0xFF,0x3F,0x3F,0x0F,0xCF,0xCF, 0x0F,0xCF, 0xCF, 0x0F, 0xCF,
0xFF,0xF8,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,
0x00,0x00,0x00,0x80,0x80,0x00,0x83,0xC7,0xEF,0xDF,0x7F,0xFF,0x71,0xC1,0x88,0x88,
0xB8,0xB9,0xB9,0xB8,0x99,0x99,0xC0,0xFF,0xFF,0xC0,0xC0,0xC0,0xC0, 0xC0,0xC0,0xC0,
0xC0,0x00,0x00,0x03,0x0F,0x1F,0x1E,0xFE,0xFE,0xEE,0x36,0x9B,0x4F,0xF7,0xE2,0x71,
0xBF,0x5D,0xFC,0xFB,0xE2,0x63,0x7F,0x61,0x61,0x61,0x7F,0x61,0xFF,0xFF,0x6F,0x63,
0x77,0x73,0x1F,0x1F,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x03,0x03,0x03,0x03,0xC5,0xEA,0xBD,0xAA,0xBD,0xAE,0xAB,0xBB,0xE7,0xC4,0x07,
0x04,0xE7,0xE4,0xBF,0xAB,0xBB,0xAC,0xA8,0xB8,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
};

动画效果

使用绘图加上延时实现