2483|3

1510

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【AT-START-F403A测评】+彩色OLED屏的显示驱动 [复制链接]

 

AT32F403A有1024 K字节的内存和96+128 K字节的SRAM,另外还配有高达16 M字节的SPI闪存,面对这么丰富的存储资源不为它配个彩屏啥的,真有点委屈了它们。

这里就先为其配上一个0.96'的彩色OLED屏,该显示屏采用SPI接口,为此将I2C接口和SPI接口联合起来驱动它。

图1 接口资源

 

为控制相关引脚的高低电平输出,所定义的语句如下:

#define OLED_SCLK_Set()    GPIO_SetBits(GPIOB, GPIO_Pins_8)

#define OLED_SCLK_Clr()    GPIO_ResetBits(GPIOB, GPIO_Pins_8)

#define OLED_SDIN_Set()    GPIO_SetBits(GPIOB, GPIO_Pins_9)

#define OLED_SDIN_Clr()    GPIO_ResetBits(GPIOB, GPIO_Pins_9)

#define OLED_RST_Clr()    GPIO_ResetBits(GPIOB, GPIO_Pins_11)

#define OLED_RST_Set()    GPIO_SetBits(GPIOB, GPIO_Pins_11)

#define OLED_DC_Clr()     GPIO_ResetBits(GPIOB, GPIO_Pins_12)

#define OLED_DC_Set()     GPIO_SetBits(GPIOB, GPIO_Pins_12)

 #define OLED_CS_Clr()     GPIO_ResetBits(GPIOB, GPIO_Pins_13)

#define OLED_CS_Set()     GPIO_SetBits(GPIOB, GPIO_Pins_13)

#define OLED_BLK_Clr()    GPIO_ResetBits(GPIOB, GPIO_Pins_14)

#define OLED_BLK_Set()    GPIO_SetBits(GPIOB, GPIO_Pins_14)

 

OLED屏的引脚功能定义函数为:

void AT32_OLED_Init(void)
{
  GPIO_InitType GPIO_InitStructure;
  RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOB, ENABLE);
  GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pins=GPIO_Pins_8|GPIO_Pins_9|GPIO_Pins_11|GPIO_Pins_12|GPIO_Pins_13|GPIO_Pins_14;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT_PP;
  GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_10MHz;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  OLED_BLK_Set();
}

图片的显示函数为:

void LCD_ShowPicturea(u16 x1,u16 y1,u16 x2,u16 y2)
{
           int i;
           LCD_Address_Set(x1,y1,x2,y2);
           for(i=0;i<12800;i++)
           {
                  LCD_WR_DATA8(gImage_moled[i*2]);
                  LCD_WR_DATA8(gImage_moled[i*2+1]);
           }
}

 

实现显示效果的主程序为:

int main(void)  //OLED 0.96 CORLOR
{
         uint8_t i;
         AT32_Board_Init();
         AT32_OLED_Init();
         OLED_Init();
         Delay_ms(200);
         LCD_Clear(BLACK);
         BACK_COLOR=BLACK;
         LCD_ShowString(10,0,"AT32F403A TEST",RED);
         LCD_ShowString(10,20,"OLED Display",RED);
         LCD_ShowString(10,40,"jinglixixi",RED);
         LCD_ShowString(10,60,"2020.10.5",RED);
         Delay_ms(2000);
         LCD_Clear(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(20,60,"0.96 TFT SPI",YELLOW);
         Delay_ms(2000);
         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);
         }
         Delay_ms(2000);
         LCD_ShowPicturea(0,0,159,79);
         while(1);
}

编译下载后,所显示的效果如图2~图5所示,怎么样存储资源少的芯片是不敢轻易来直接用数组存放图片数据的。

图2 字符串显示

 

图3 中文显示

 

图4 图标显示

 

图5 图片显示

最新回复

雅特力AT-START-F403A测评汇总 https://bbs.eeworld.com.cn/thread-1143018-1-1.html   详情 回复 发表于 2020-10-9 15:05
点赞(1) 关注
 
 

回复
举报

6105

帖子

4

TA的资源

版主

沙发
 

不点屏确实浪费。

 
 
 

回复

1510

帖子

1

TA的资源

五彩晶圆(初级)

板凳
 
damiaa 发表于 2020-10-9 09:18 不点屏确实浪费。

 
 
 

回复

1万

帖子

2853

TA的资源

管理员

4
 

雅特力AT-START-F403A测评汇总

https://bbs.eeworld.com.cn/thread-1143018-1-1.html

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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