3451|1

1512

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

[ESP32-Audio-Kit音频开发板测评] 彩色OLED屏的显示驱动 [复制链接]

ESP32-Audio-Kit开发板是一款主打音频处理的开发板,若再为它配上图片显示功能将会锦上添花。鉴于其提供的接口资源实在有限,见图1所示。

图1扩展接口

这里是以一个SPI接口的彩色OLED屏为显示器件,其各引脚的连接关系如下:

SCL  ---  23

SDA  ---  18

RST  ---  22

DC   ---  19

CS   ---  21

 

显示屏的引脚功能配置函数为:

void App_OledInit(void)
{
  pinMode(SCL,OUTPUT);
  pinMode(SDA,OUTPUT);
  pinMode(DC, OUTPUT);
  pinMode(RST,OUTPUT);
  pinMode(CS,OUTPUT);
}

相应的清屏函数为:

void LCD_Clear(u16 Color)
{
      u16 i,j;
      LCD_Address_Set(0,0,LCD_W-1,LCD_H-1);
      for(i=0;i<LCD_W;i++)
      {
            for (j=0;j<LCD_H;j++)
            {
                    LCD_WR_DATA(Color);
            }
      }
}

在配置显示字库的情况下,其字符显示函数为:

void LCD_ShowChar(u16 x,u16 y,u8 num,u16 color)
{
    u8 temp;
    u8 pos,t;
    u16 x0=x;
    num=num-' ';
    LCD_Address_Set(x,y,x+8-1,y+16-1);
    for(pos=0;pos<16;pos++)
    {
        temp=asc2_1608[(u16)num*16+pos];
        for(t=0;t<8;t++)
        {
            if(temp&0x01) LCD_WR_DATA(color);
            temp>>=1;
            x++;
        }
        x=x0;
        y++;
    }
}

在使用该函数的情况下,其显示效果如图2所示。

图2字符显示效果

在借助于文件系统及TF卡读写功能的情况下,可实现图片显示及数码相框功能,显示效果如图3所示。

显示指定目录下图片的功能函数为:

void listDir(fs::FS &fs, const char * dirname, uint8_t levels)
{
    Serial.printf("Listing directory: %s\n", dirname);
    File root = fs.open(dirname);
    if(!root){
        Serial.println("Failed to open directory");
        return;
    }
    if(!root.isDirectory()){
        Serial.println("Not a directory");
        return;
    }
    File file = root.openNextFile();
    while(file)
    {
            testpic(SD_MMC, file.name());
            // 按键控制
            while (digitalRead(key)==0)
            file = root.openNextFile();
   }
}

图3图片显示效果

此帖出自RF/无线论坛

最新回复

数码相框功能已实现,还行   详情 回复 发表于 2021-10-10 10:47
点赞 关注
 

回复
举报

1700

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 

数码相框功能已实现,还行

此帖出自RF/无线论坛
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表