芯源半导体CW32
直播中

zealsoft

3年用户 696经验值
擅长:可编程逻辑,嵌入式技术
私信 关注

【CW32饭盒派开发板试用体验】利用机智云模块联网(3)

感谢电子发烧友论坛和武汉芯源所提供的CW32饭盒派开发板的测试机会。

上次我们介绍了如何处理机智云的事件并控制CW32饭盒派的硬件,不过当时只是完成了一个对LED灯的控制。今天完成一个控制LCD屏显示的例子,作为这个系列的结束。

1. 机智云的数据点

上次我们介绍了在gizwitsEventProcess函数中处理机智云的事件。其中EVENT开头的事件都是用于配置设备的,这部分事件在机智云中通常被称为数据点

在机智云的后台可以添加、删除或编辑这些数据点信息,如下图所示。像我们创建的设备属于灯带,它就包括R灯珠、G灯珠等控制颜色的数据点。数据点都是可以自定义的,非常方便用户设计个性化产品。
1.png

这些数据点也都可以在手机App上灵活设置,如下图所示。

4.jpg

2. LCD显示

饭盒派带有一块1.77寸的彩色液晶屏,160*128点阵大小。饭盒派在其“实验七 TFT彩屏实验”中提供了基本的驱动函数和示例程序。如果想在程序中使用其LCD显示功能,只需要把TFT目录中的内容加到工程中即可。

为了方便显示RGB颜色信息,我们在lcd_driver.h中添加如下RGB565宏,方便把RGB888颜色转换RGB565为:

#define
RGB565(r, g, b) (((r) >> 3) << 11 | ((g) >> 2) << 5 |
((b) >> 3))

3. 利用机智云App控制CW32饭盒派的LCD屏显示

最后介绍一下使用机智云的LCD屏幕绘制一个矩形区域,其颜色由机智云下发的R灯珠、G灯珠和B灯珠数据点决定。这里我们用了lcddriver.c中提供的一个函数Lcd_Clear_1,它在屏幕右下角用指定的颜色绘制一个小区域。

代码如下:

case EVENT_led_r:
        currentDataPoint.valueled_r = dataPointPtr->valueled_r;
        GIZWITS_LOG("Evt:EVENT_led_r %d\n",currentDataPoint.valueled_r);
        Lcd_Clear_1(RGB565(currentDataPoint.valueled_r, currentDataPoint.valueled_g, currentDataPoint.valueled_b));
        //user handle
        break;
      case EVENT_led_g:
        currentDataPoint.valueled_g = dataPointPtr->valueled_g;
        GIZWITS_LOG("Evt:EVENT_led_g %d\n",currentDataPoint.valueled_g);
        //user handle
        Lcd_Clear_1(RGB565(currentDataPoint.valueled_r, currentDataPoint.valueled_g, currentDataPoint.valueled_b));
        break;
      case EVENT_led_b:
        currentDataPoint.valueled_b = dataPointPtr->valueled_b;
        GIZWITS_LOG("Evt:EVENT_led_b %d\n",currentDataPoint.valueled_b);
        //user handle
        Lcd_Clear_1(RGB565(currentDataPoint.valueled_r, currentDataPoint.valueled_g, currentDataPoint.valueled_b));

下面的视频就是实际的控制效果。

CW32的LCD屏还是不错的,不过它所提供的API太简陋了,下次我们会介绍如何使用LCD屏实现酷炫的效果。

演示视频

更多回帖

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