【FireBLE试用体验】外设篇(5)显示OLED

  • gjianw217
  • LV4工程师
  • |      2015-10-06 12:38:34
  • 浏览量 819
  • 回复:0


    本篇体验板上的UART的控制,主要分3部分:硬件分析,软件实现,测试效果。


一、硬件分析

1 OLED显示屏

OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD),它是由美籍华裔教授邓青云在实验室中发现。OLED显示技术具有自发光的特性,采用非常薄的有机材料涂层和玻璃基板,当有电流通过时,这些有机材料就会发光. 相较于市场上流行的液晶显示器(LCD 有明显的优势,主要表现为:自主发光(不需要背光源),无视角问题(视角可达170°以上),重量轻,厚度薄,亮度高,发光效率高,响应速度快(是液晶的 1000倍),动态画面质量高,温度范围广(温度范围-4080),低功耗,抗震能力强,制造成本低,可柔性显示。尤其适用于要求高亮度的仪表行 业,以及条件要求更高的军工产品。

       当前比较常用的OLED调试模块,是晶门公司推出的驱动SSD1303/SSD1306单色OLED,它采用TAB封装。这种基于CMOS工艺的驱动IC集成了行、列驱动器、振荡器、对比度控制器和图形数据存储器(GDDRAM),可支持的最大分辨率为132×64,其中OLED屏底部132×16的点阵区域可以显示4色的局域色,并可编程实现64级灰度,当用于单色显示时,可编程控制256级对比度。SSD1303提供有68008080SPI等用于与微控制器进行通信的显示接口。以下是本人的OLED显示模块实物图,为SPI接口。




2 板载接口

    FireBLE开发板上用来连接OLED模块的接口如下图所示,它是一个“标准”的SPI接口类型,分别由QN9021蓝牙芯片的P0_3,P1_0,P1_1,P1_7控制。该4个引脚,分别对应的功能配置,可参见下表所示。


P0_3

OLED_RST

0: P0_3 (I/O):GPIO

1: CLKOUT0 (O):Clock output 0

2: T0_ECLK (I/O):Timer 0 external clock input or PWM

output

P1_1

OLED_DA

0: P1_1 (I/O):GPIO

1: DAT1 (I/O):In 4-wire mode, SPI1 output data. In 3-wire

mode, data I/O

2: TXD1 (O):UART1 Tx data

3: T1_0 (I/O):Timer 1 input capture /clock or PWM output

P1_0

OLED_RS

0: P1_0 (I/O):GPIO

1: DIN1 (I):SPI1 input data in 4-wire mode, invalid in

3-wire mode

2: RXD1 (I):UART1 Rx data

3: T2_ECLK (I/O):Timer 2 external clock input or PWM

output

P1_3

OLED_CLK

0: P1_3 (I/O):GPIO

1: SPICLK1 (I/O):SPI1 clock

2: RTS1 (O):UART1 RTS

3: CLKOUT1 (O):Clock output 1

    虽然FireBLE提供了SPI接口库文件,但如果要根据OLED的时序图,来完成SPI接口驱动的编写,还是需要一定的时间和技术条件,好在在FireBLE提供的模块中,已经完成了针对OLED的SPI接口驱动,下面将其移植到自己的项目中。

二 软件实现

1 复制源码

2 添加宏定义

3 开启初始化

4 编写串口测试函数,该函数由main函数直接调用


void TestOLED(void)

{

	

	SystemInit();

	

	OLED_Init();			//初始化 OLED 

	OLED_Clear();			//清屏 OLED



	OLED_ShowString(0,0,(uint8_t*)"  www.ickey.cc  ");

	OLED_ShowString(0,2,(uint8_t*)"    FierBLE     ");

	OLED_ShowString(0,4,(uint8_t*)"       gjianw217");

	OLED_ShowString(0,6,(uint8_t*)"        20151005");	



	while(1)

	{

	// add TODO;

	}		

}


三、测试效果



【FireBLE试用体验】试用报告汇总

  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子