178|3

507

帖子

0

资源

一粒金砂(高级)

【CH579M-R1】+彩色OLED屏显示

本帖最后由 jinglixixi 于 2020-10-18 10:47 编辑

原打算是在U盘读写的功能上添加彩色OLED屏的以实现数码相框的功效,无奈在U盘读写方面消耗的时间较多也没有太大的进展,现在就只能让彩色OLED屏唱独角戏了,汉字能显、图标能显,就是大写的图片不能显,因为MCU的容量不允许,只能借助外部的否则存储器件。

汉字及图标的显示效果如图1和图2所示。

图片1.png 1 显示汉字

 

图片2.png 2 显示 图标

由于该彩色OLED屏是采用SPI接口的,故比I2C接口的OLED屏要多消耗些I/O资源。

OLED屏与MCU的连接关系为:

CLK---PB0

DIN---PB1

RES---PB2

DC---PB3

CS ---PB6

相关引脚为驱动OLED屏输出高低电平的语句定义如下:

#define OLED_SCLK_Clr() GPIOB_ResetBits( GPIO_Pin_0 )//CLK

#define OLED_SCLK_Set() GPIOB_SetBits( GPIO_Pin_0 )

#define OLED_SDIN_Clr() GPIOB_ResetBits( GPIO_Pin_1 )//DIN

#define OLED_SDIN_Set() GPIOB_SetBits( GPIO_Pin_1 )

#define OLED_RST_Clr()  GPIOB_ResetBits( GPIO_Pin_2 ) //RES

#define OLED_RST_Set()  GPIOB_SetBits( GPIO_Pin_2 )

#define OLED_DC_Clr()   GPIOB_ResetBits( GPIO_Pin_3 ) //DC

#define OLED_DC_Set()   GPIOB_SetBits( GPIO_Pin_3 )

#define OLED_CS_Clr()   GPIOB_ResetBits( GPIO_Pin_6 ) //CS

#define OLED_CS_Set()   GPIOB_SetBits( GPIO_Pin_6 )

OLED屏的初始化函数为:

void OLED_Init(void)
{
  GPIOB_ModeCfg( GPIO_Pin_0, GPIO_ModeOut_PP_5mA ); 
  GPIOB_ModeCfg( GPIO_Pin_1, GPIO_ModeOut_PP_5mA ); 
  GPIOB_ModeCfg( GPIO_Pin_2, GPIO_ModeOut_PP_5mA ); 
  GPIOB_ModeCfg( GPIO_Pin_3, GPIO_ModeOut_PP_5mA ); 
  GPIOB_ModeCfg( GPIO_Pin_4, GPIO_ModeOut_PP_5mA ); 
  GPIOB_ModeCfg( GPIO_Pin_5, GPIO_ModeOut_PP_5mA ); 
  OLED_RST_Clr();
  mDelaymS(200);
  OLED_RST_Set();
  mDelaymS(200);
  LCD_WR_REG(0x11); 
  mDelaymS(100);
  LCD_WR_REG(0x21); 
  LCD_WR_REG(0xB1); 
  LCD_WR_DATA8(0x05);
  LCD_WR_DATA8(0x3A);
  LCD_WR_DATA8(0x3A);
  LCD_WR_REG(0xB2);
  LCD_WR_DATA8(0x05);
  LCD_WR_DATA8(0x3A);
  LCD_WR_DATA8(0x3A);
  LCD_WR_REG(0xB3); 
  LCD_WR_DATA8(0x05);  
  LCD_WR_DATA8(0x3A);
  LCD_WR_DATA8(0x3A);
  LCD_WR_DATA8(0x05);
  LCD_WR_DATA8(0x3A);
  LCD_WR_DATA8(0x3A);
  LCD_WR_REG(0xB4);
  LCD_WR_DATA8(0x03);
  LCD_WR_REG(0xC0);
  LCD_WR_DATA8(0x62);
  LCD_WR_DATA8(0x02);
  LCD_WR_DATA8(0x04);
  LCD_WR_REG(0xC1);
  LCD_WR_DATA8(0xC0);
  LCD_WR_REG(0xC2);
  LCD_WR_DATA8(0x0D);
  LCD_WR_DATA8(0x00);
  LCD_WR_REG(0xC3);
  LCD_WR_DATA8(0x8D);
  LCD_WR_DATA8(0x6A);
  LCD_WR_REG(0xC4);
  LCD_WR_DATA8(0x8D); 
  LCD_WR_DATA8(0xEE); 
  LCD_WR_REG(0xC5);  /*VCOM*/
  LCD_WR_DATA8(0x0E);    
  LCD_WR_REG(0xE0);
  LCD_WR_DATA8(0x10);
  LCD_WR_DATA8(0x0E);
  LCD_WR_DATA8(0x02);
  LCD_WR_DATA8(0x03);
  LCD_WR_DATA8(0x0E);
  LCD_WR_DATA8(0x07);
  LCD_WR_DATA8(0x02);
  LCD_WR_DATA8(0x07);
  LCD_WR_DATA8(0x0A);
  LCD_WR_DATA8(0x12);
  LCD_WR_DATA8(0x27);
  LCD_WR_DATA8(0x37);
  LCD_WR_DATA8(0x00);
  LCD_WR_DATA8(0x0D);
  LCD_WR_DATA8(0x0E);
  LCD_WR_DATA8(0x10);
  LCD_WR_REG(0xE1);
  LCD_WR_DATA8(0x10);
  LCD_WR_DATA8(0x0E);
  LCD_WR_DATA8(0x03);
  LCD_WR_DATA8(0x03);
  LCD_WR_DATA8(0x0F);
  LCD_WR_DATA8(0x06);
  LCD_WR_DATA8(0x02);
  LCD_WR_DATA8(0x08);
  LCD_WR_DATA8(0x0A);
  LCD_WR_DATA8(0x13);
  LCD_WR_DATA8(0x26);
  LCD_WR_DATA8(0x36);
  LCD_WR_DATA8(0x00);
  LCD_WR_DATA8(0x0D);
  LCD_WR_DATA8(0x0E);
  LCD_WR_DATA8(0x10);
  LCD_WR_REG(0x3A); 
  LCD_WR_DATA8(0x05);
  LCD_WR_REG(0x36);
  if(USE_HORIZONTAL==0)LCD_WR_DATA8(0x08);
  else if(USE_HORIZONTAL==1)LCD_WR_DATA8(0xC8);
  else if(USE_HORIZONTAL==2)LCD_WR_DATA8(0x78);
  else LCD_WR_DATA8(0xA8);
  LCD_WR_REG(0x29); 
}

实现图1和图2的主要程序为:

Lcd_Init();	
LCD_Clear(BLACK);
BACK_COLOR=BLACK;
LCD_ShowChinese(28,0,0,32,YELLOW); 
LCD_ShowChinese(60,0,1,32,YELLOW); 
LCD_ShowChinese(92,0,2,32,YELLOW);
LCD_ShowChinese(20,40,0,16,YELLOW);
LCD_ShowChinese(36,40,1,16,YELLOW);
LCD_ShowChinese(52,40,2,16,YELLOW);
LCD_ShowChinese(68,40,3,16,YELLOW);
LCD_ShowChinese(84,40,4,16,YELLOW);
LCD_ShowChinese(100,40,5,16,YELLOW);
LCD_ShowChinese(116,40,6,16,YELLOW); 
LCD_ShowString(0,60,"0.96 TFT SPI",YELLOW);
LCD_Clear(BLACK);
LCD_ShowString(10,0,"LCD_W:",RED);	 
LCD_ShowNum(70,0,LCD_W,3,RED);
LCD_ShowString(10,20,"LCD_H:",RED);  
LCD_ShowNum(70,20,LCD_H,2,RED);
for(i=0;i<4;i++)
{
LCD_ShowPicture(i*40,40,39+i*40,79);
}

 

虽然测评的时间已近尾声,但对CH579M的调试之路还会在继续,其实它的无线通讯、网络通讯功能等也都有非常不错的用途,只是CH579MU盘读写功能应为大家提供一个便于参考进而能扩展自己应用的例程。

 


回复

211

帖子

0

资源

版主

感谢分享,非常不错!继续加油,会观看你的每一篇测评的!!!

点评

感谢厚爱和支持!!!  详情 回复 发表于 6 天前

回复

507

帖子

0

资源

一粒金砂(高级)

w494143467 发表于 2020-10-16 17:41 感谢分享,非常不错!继续加油,会观看你的每一篇测评的!!!

感谢厚爱和支持!!!


回复

1万

帖子

133

资源

管理员

个人签名

玩板看这里:

http://bbs.eeworld.com.cn/elecplay.html

EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!


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

关闭
站长推荐上一条 1/5 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表