1回答

0收藏

[评测分享] 【ESP32-E Arduino开发板】0.91寸OLED 屏的显示驱动

#板卡评测 #板卡评测 3791 人阅读 | 1 人回复 | 2021-07-04

本帖最后由 jinglixixi 于 2021-7-4 13:04 编辑

为了便于人机交互,伴随开发板推出的还有相应的OLED屏显示模块,其显示屏是一款I2C接口的0.96寸单色显示屏,其外观如图1所示。
图1  OLED屏显示模块

尽管本人没有这款显示屏,但手头却有一块0.91寸的单色OLED 屏,且也是I2C接口的。抱着测试的态度,用模块的程序点亮了自己的OLED屏,其结果如图2所示。
图2  0.91寸OLED屏显示

若对初始化程序加以修改,则实现显示效果是图3的样子,因屏幕的尺寸及像素点比模块的少,故显示的内容只是原内容的一半。
图3 修改后的显示效果

0.91寸OLED屏的初始化函数为:
void SSD1306(){
Writec(0XAE);//displayoff
Writec(0X40);//setdisplay start line
Writec(0XB0);//setpage address
Writec(0XC8);//setpage address
Writec(0X81);//setcontract control
Writec(0XFF);//VCC Generated by Internal DC/DC Circuit
Writec(0XA1);//setsegment remap column address 127 is mapped to SEG0
Writec(0XA6);//normal/ reverse normal display
Writec(0XA8);//multiplexratio
Writec(0X1F);//1/64
Writec(0XD3);//setdisplay offset
Writec(0X00);
Writec(0XD5);//setosc division
Writec(0XF0);
Writec(0XD9);//setpre-charge period
Writec(0X22);
Writec(0XDa);//setCOM pins
Writec(0X02);
Writec(0X8d);/*setcharge pump enable*/
Writec(0X14);
Writec(0Xdb);//SetVcomH
Writec(0X49);
Writec(0XAF);//displayON
}

在修改程序和构建字库的情况下,可实现字符、数值及字符串显示。
其中实现数值显示的函数为:
void OLED_ShowNum(unsignedchar x,unsigned char y,unsigned int num,unsigned char len)
{
  unsigned char t,temp, 16;
  unsigned char enshow=0;
  for(t=0;t<len;t++){
    temp=(num/oled_pow(10,len-t-1))%10;
    if(enshow==0 && t<(len-1) ) {
      if(temp==0){
        OLED_ShowChar(x+8*t,y,' ',size2);
        continue;
      }
      else enshow=1;
    }
    OLED_ShowChar(x+8*t,y,temp+'0',size2);
  }
}
实现图4显示效果的语句为:
OLED_ShowNum(8,2,1234,4,16);
图4显示数值
实现字符串显示的函数为:
void OLED_ShowString(unsigned charx,unsigned char y,unsigned char Char_Size)
{
unsigned char j=0;
while (chr[j]!='\0'){   
   OLED_ShowChar(x,y,chr[j],Char_Size);
   x+=8;
   if(x>120){
     x=0;
     y+=2;
    }
   j++;
  }
}
实现图5显示效果的语句为:
图5 显示字符串

unsigned char  chr[]="FireBeetle";
unsigned char chr1[]="-ESP32    ";
OLED_ShowString(0,0,16);
for(i=0;i<10;i++){
chr=chr1;
}
OLED_ShowString(0,2,16);


注:在字符串的显示过程中,之所以使用数组,是因为在开发软件不支持指针型变量。
分享到:
回复

使用道具 举报

回答|共 1 个

倒序浏览

沙发

藝石

发表于 2021-12-23 22:51:34 | 只看该作者

值得好好学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条