打印

【CC2530开发笔记02】OLED显示模块的驱动实现与基本应用

[复制链接]
6592|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 ohy3686 于 2018-9-6 13:01 编辑

【CC2530开发笔记02】OLED显示模块的驱动实现与基本应用

1、概述
    有机发光半导体OLED显示技术,具有自发光、广视角、几乎无穷高的对比度、较低耗电、极高反应速度等优点,逐渐成为一种常用的显示模块,应用于各种单片机和嵌入式系统中。目前常见的OLED模块的控制芯片主要有SSH1106SSD1306两种,两种控制芯片的模块基本兼容,SSH1106控制芯片RAM为132×64空间,SSD1306控制芯片RAM为128×64空间,在编写驱动程序的时候注意一下就可以了。
2、硬件连接
    本技术笔记中选用0.96寸的OLED显示模块,采用三线SPI接口的方式进行控制。
    模块有7个引脚,从左至右依次为:GND  VCC D0  D1  RES  DC CS。
    D0:为时钟引脚,OLED_DC----连接到CC2530---->P1_6
    D1:为数据引脚,OLED_DD----连接到CC2530---->P1_7
    RES:为复位脚,OLED_RET----连接到CC2530---->P2_0
    DC:为控制引脚,OLED_DC----连接到CC2530---->P1_5
    CS:为片选引脚,低电平有效,接地----------->GND
3、开发思路
    你在购买OLED显示模块的时候,商家通常都会提供相应的驱动程序,一般都有四个文件,在本笔记中:
    <1> XMF_OLED1306.c:驱动程序的源文件。
    <2> XMF_OLED1306.h:驱动程序的头文件。
    <3> XMF_OLED_Font.h:字库文件。
    <4> XMF_OLED_BMP.h:图片数据文件。
    在这四个文件中,首先去看驱动程序的头文件,这里会告诉你,驱动程序里面有哪些数据结构和那些函数。各个商家提供的驱动函数基本上大同小异,可能也就是函数名称不同而已。再结合商家提供的应用Demo代码,掌握这些驱动函数的应用不会很难,如果有疑问可以看其对应的源码实现。这些驱动函数不是拷过来就直接能用的,需要稍作修改。但是也不必害怕,改动的地方很小,一般需要改动另个地方:
    1、头文件中,引脚的定义。
   
    2、端口初始化函数。
   
3、应用案例
    首先在OLED显示模块上显示文字信息,并用一个整型变量显示屏幕刷新次数,从0累加至99,当到达100时,显示页面切换为图片信息,延时一段时间后,再次显示文字信息,屏幕刷新变量再次从0累加到99,如此往复。

4、实现源码
#include "ioCC2530.h"
#include "XMF_OLED1306.h"

unsigned int num = 0;

void Delay(unsigned int t)
{
  while(t--);
  while(t--);
}

void main()
{
  Init_OLED_Port();
  OLED_Init();
  while(1)
  {
    OLED_Show_CHN(0,0,0);     //~
    OLED_Show_CHN(18,0,1);    //小
    OLED_Show_CHN(36,0,2);    //蜜
    OLED_Show_CHN(54,0,3);    //蜂
    OLED_Show_CHN(72,0,4);    //壹
    OLED_Show_CHN(90,0,5);    //号
    OLED_Show_CHN(108,0,6);   //~
   
    OLED_Show_CHN(18,3,7);    //欧
    OLED_Show_CHN(36,3,8);    //浩
    OLED_Show_CHN(54,3,9);    //源
    OLED_Show_CHN(72,3,11);   //制
    OLED_Show_Int(90,3,num,3,16);
    OLED_Show_Str(6,6,"ohy3686@qq.com");
    if(num++ == 100)
    {
      num = 0;
      OLED_Clear();
      OLED_Draw_BMP(0,0,128,8);
      Delay(60000);
      Delay(60000);
      Delay(60000);
      Delay(60000);
      Delay(60000);
      OLED_Clear();
    }
    Delay(60000);
    Delay(60000);
  }
}
5、驱动源码
    商家一般只提供C51、STM8、STM32、MSP430的驱动源码,CC2530版的暂时没有。小弟不才,整理了一个CC2530版的的OLED驱动代码,肯定不会很完美,但是经过验证是可以使用的。如果有朋友需要,不嫌弃的话,附件下载即可。附件:0.96寸OLED驱动程序(CC2530版)
XMF-OLED1306-LIB.zip (7.6 KB)


相关帖子

沙发
fentianyou| | 2018-2-1 21:30 | 只看该作者
放假都不休息的大神。

使用特权

评论回复
板凳
dirtwillfly| | 2018-2-3 21:03 | 只看该作者

使用特权

评论回复
地板
ohy3686|  楼主 | 2018-2-3 23:42 | 只看该作者

使用特权

评论回复
5
gygp| | 2018-2-6 20:34 | 只看该作者
SSH1106和SSD1306有什么不同?

使用特权

评论回复
6
gygp| | 2018-2-6 20:34 | 只看该作者
相加比,SSH1106和SSD1306哪个更高?

使用特权

评论回复
7
ohy3686|  楼主 | 2018-2-6 22:38 | 只看该作者
febgxu 发表于 2018-2-6 20:33
楼主的代码都开发完整了吗

完整。

使用特权

评论回复
8
ohy3686|  楼主 | 2018-2-6 22:38 | 只看该作者
gygp 发表于 2018-2-6 20:34
SSH1106和SSD1306有什么不同?

内存RAM空间不同。

使用特权

评论回复
9
ohy3686|  楼主 | 2018-2-6 22:38 | 只看该作者
febgxu 发表于 2018-2-6 20:34
OLED能够显示图像吗?

能够。

使用特权

评论回复
10
ohy3686|  楼主 | 2018-2-6 22:38 | 只看该作者
gygp 发表于 2018-2-6 20:34
相加比,SSH1106和SSD1306哪个更高?

差不多

使用特权

评论回复
11
dzfansman| | 2018-2-7 22:07 | 只看该作者
OLED价格怎么样

使用特权

评论回复
12
plsbackup| | 2018-2-7 22:09 | 只看该作者
ohy3686 发表于 2018-2-6 22:38
内存RAM空间不同。

控制的效率怎么样?

使用特权

评论回复
13
dzfansman| | 2018-2-7 22:15 | 只看该作者
不知道读写效率怎么样?

使用特权

评论回复
14
plsbackup| | 2018-2-7 22:15 | 只看该作者
ohy3686 发表于 2018-2-6 22:38
内存RAM空间不同。

占用的是mcu的ram多吗?

使用特权

评论回复
15
ohy3686|  楼主 | 2018-2-7 22:17 | 只看该作者

0.96英寸的15块左右,1.3英寸的20块左右
量大应该能谈价格。

使用特权

评论回复
16
ohy3686|  楼主 | 2018-2-7 22:18 | 只看该作者
dzfansman 发表于 2018-2-7 22:15
不知道读写效率怎么样?

一般只写不读
模块有SPI和IIC两种接口
虽速度不会太快,但属于静态显示。
能满足一般应用。

使用特权

评论回复
17
ohy3686|  楼主 | 2018-2-7 22:22 | 只看该作者
plsbackup 发表于 2018-2-7 22:15
占用的是mcu的ram多吗?

如果定义成数组变量的话,一个屏幕需要16×64个字节。
还有字符和汉字的缓存变量
所以,需要的RAM还是相当大的
不过,可以变通一下,将这些内容定义成const常量就不会占用RAM了。
在程序设计上再处理一下就可以了。

使用特权

评论回复
18
fengm| | 2018-2-8 16:49 | 只看该作者
给力的设计。

使用特权

评论回复
19
hudi008| | 2018-2-8 16:49 | 只看该作者
驱动代码跟着学习。

使用特权

评论回复
20
hudi008| | 2018-2-8 16:51 | 只看该作者
楼主的硬件电路都能提供吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:广东职业技术学院 欧浩源(ohy3686@foxmail.com)    [Zigbee技术&物联网应用] 群:168225322    [技术交流微信]:gzyohy (暗号:宝塔镇河妖)

322

主题

899

帖子

2892

粉丝