庆科社区
直播中

gjianw217

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

【MiCOKit试用体验】庆科MiCOKit外设篇(5)RGB三色灯

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

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

二、硬件分析:
在EMW3165套件的扩展板上,设计一个8mm直径的RGB三色LED指示灯,通过P9813驱动,可以通过手机等实现对LED的全色彩控制。P9813是一款全彩点光源LED驱动芯片,采用CMOS工艺,提供三路恒流驱动及256级灰度调制输出,采用双线传输方式(DATACLK进行控制。值得一提地是,由于P9813不是标准的I2C接口,为了节约IO威廉希尔官方网站 连接在I2C的总线上,但是需要配置为GPIO,根据时序图来实现调色,调光的功能。具体的原理图如下图所示:
11.png

另外通过查看原理图和开发板,对应EMW3165无线控制模块的引脚,如下图所示:
12.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_EXTrgb_led目录下的,定义了四个文件:
13.png
其中h***2rgb_led位于rgb_led的上层,在h***_2rgb_led定义的函数,调用rgb_led的函数,而在rgb_led文件中,定义了针对P9813的驱动函数,来实现RGB的显示。所以为了控制RGB的显示,只需要关注h***2rgb_led文件中的函数即可。这里需要说明的是:HSB是色相(Hue),饱和度(Staturation)和亮度(Brightness)的缩写,而R是红色(Red),G是绿色(Green)和B是蓝色(Blue)的缩写,它们虽然形式不同,但表达同样的意思。

在h***2rgb_led文件中,
庆科已经为用户封装好了针对RGB的操作接口,现对其作一说明。
(1)初始化函数
void h***2rgb_led_init(void);
(2)控制函数

void h***2rgb_led_open(float hues, float saturation, float brightness);

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

故在测试文件中,指定头文件的方法如下:
  1. #include "rgb_led/h***2rgb_led.h"
2 编写测试程序
  1. void TestRGB(void)//由application_start函数调用
  2. {
  3.     h***2rgb_led_init();
  4.    // h***2rgb_led_open(0, 0, 0);  // off
  5.     h***2rgb_led_open(255, 0, 0);
  6.     mico_thread_msleep(300);
  7.     h***2rgb_led_open(0, 255, 0);
  8.     mico_thread_msleep(300);
  9.     h***2rgb_led_open(0, 0, 255);
  10.     mico_thread_msleep(300);
  11.     h***2rgb_led_open(60, 60, 60);
  12.     mico_thread_msleep(300);
  13.     h***2rgb_led_open(120, 120, 120);
  14.     mico_thread_msleep(300);
  15.     h***2rgb_led_open(240, 240, 240);
  16.     mico_thread_msleep(300);
  17.     h***2rgb_led_open(360, 360, 360);

  18. }
五、测试结果:
开板板效果:
5.gif

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

回帖(4)

王振伟

2015-11-19 18:25:26
哪里可以下到IAR的直接可以用的版本啊?每次都是被繁琐的安装过程绊倒
举报

gjianw217

2015-11-20 08:53:52
引用: 豫华商 发表于 2015-11-19 18:25
哪里可以下到IAR的直接可以用的版本啊?每次都是被繁琐的安装过程绊倒

不清楚,我一般安装一次就可以了,没有每次,并且安装过程也不是那么繁琐!
举报

王振伟

2015-11-23 15:04:05
您在哪里下载的了?
举报

gjianw217

2015-11-23 16:04:59
引用: 豫华商 发表于 2015-11-23 15:04
您在哪里下载的了?

网上一大堆,我不知道你为什么会对这个纠结!
举报

更多回帖

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