庆科社区
直播中

gjianw217

11年用户 689经验值
擅长:嵌入式技术 控制/MCU RF/无线
私信 关注

【MiCOKit试用体验】庆科MiCOKit外设篇(3)OLED显示

本帖最后由 gjianw217 于 2015-10-18 00:02 编辑

本帖主要内容:本帖子主要使用庆科提供的MiCOKit开发环境,来测试板上的OLed的显示,并简单了解MiCOKit的封装。
一、测试环境:
庆科开发套件EMW3165底板和扩展板
庆科SDK_MiCOKit_v2.3.0.2
USB串口线
JLink仿真
串口调试助手

二、硬件分析:
在EMW3165套件的扩展板上,采用了一块0.96寸、128x64点阵式、黄蓝双色OLED显示屏,上面128x16为黄色显示区,下面128*48为蓝色显示区。具体的原理图如下图所示,它采用SPI总线,与EMW3165无线控制模块相连。
6.png

另外通过查看原理图和开发板,对应EMW3165无线控制模块的引脚,如下图所示:
8.png
三、软件分析:
1 软件分层
在庆科提供的SDK_MiCOKit_v2.3.0.2开发包中,进行了三层的软件封装,即:用户层(外设层),平台层,驱动层。
(1)用户层(外设层),定义在 SDK_MiCOKit_v2.3.0.2/Platform/Drivers/MiCOKit_EX/目录下,主要通过调用平台层的封装函数,定义了各扩展板上外设的操作,用户只要调用它们,而无需知道各外设的原理,即可对其进行操作。
(2)平台层 定义在SDK_MiCOKit_v2.3.0.2/Platform/Peripherals/目录下,以platform_xxx.h命名,主要通过调用驱动层的封装函数,定义了MiCO系统需要调用的接口,方便将MiCO移植到不同的芯片平台上。
(3)驱动层 定义在SDK_MiCOKit_v2.3.0.2/Platform/Peripherals/Libraries/STM32F4xx_StdPeriph_Driver/目录下,以stm32f4xx_xx.c命名,主要移植了有关芯片提供商提供的对芯片操作的接口函数。
2 软件定义
在 SDK_MiCOKit_v2.3.0.2PlatformDriversMiCOKit_EXTlcd目录下的oled.c文件中,庆科已经为用户封装好了针对OLED的操作接口,现对常用接口作一说明。
(1)初始化函数
void OLED_Init(void);
(2)清屏函数

void OLED_Clear(void);
(3)显示字符函数

void OLED_ShowChar(u8 x,u8 y,u8 chr);
其中x为0-127,,y为0-63,size:为 16/12,如在0,0处显示‘a’:OLED_ShowChar(0,0,’a’);
(4)显示数字函数
void OLED_ShowNum(u8 x,u8 y,u32 num,u8len,u8 size);
其中x为0-127,,y为0-63,数字应该0~4294967295,字体大小应该为16/12,如在1,1处,显示12,12为2位数,显示字体大小为12:OLED_ShowNum(1,1,12,2,12);
(5)显示字符串函数

void OLED_ShowString(u8 x,u8 y, u8 *p);
其中x为0-127,,y为0-63,p指向要显示的字符串,最多显示4行,每行显示120个字符,如
OLED_ShowString(2,0, “helloworld”);
(6)显示汉字函数
void OLED_ShowCHinese(u8 x,u8 y,u8 no);
(7)显示图片函数
void OLED_DrawBMP(unsigned char x0, unsignedchar y0,unsigned char x1, unsigned char y1,unsigned char BMP[])
其中函数(6)和(7)需要字模软件的帮助,才能完成最终的显示
四、测试程序:

1 指定头文件
由于在IAR开发环境中,SDK_MiCOKit_v2.3.0.2已经指定了头文件目录 ,如下图所示,

故在测试文件中,指定头文件的方法如下:
  1. #include "lcd/oled.h"
2 编写测试程序
  1. void TestOLED(void)//由application_start函数调用
  2. {
  3.   OLED_Init();
  4.   OLED_Clear();

  5.   OLED_ShowChar(0,0,'a');
  6.   sensor_log("OLED show char a");
  7.   OLED_ShowNum(0,2,12,2,12);
  8.   sensor_log("OLED show num 12");
  9.   OLED_ShowString(0,4, "helloworld");
  10.   sensor_log("OLED show str helloworld");
  11.   OLED_ShowCHinese(0,6,1);
  12.   sensor_log("OLED show chinese");
  13. }
五、测试结果:
开板板效果:
31.jpg
串口效果:
32.png

欢迎大家关注本人的微信公众号【口袋物联】,微信号为koudaiwulian。一起学习物联网相关的知识,分享物联网相关的趣事。

更多回帖

发帖
×
20
完善资料,
赚取积分