用户工具

站点工具


icore4tlvgl_10

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
icore4tlvgl_10 [2020/12/05 16:07]
zgf 创建
icore4tlvgl_10 [2022/04/01 11:13] (当前版本)
sean
行 2: 行 2:
 |技术支持电话|**0379-69926675-801**||| |技术支持电话|**0379-69926675-801**|||
 |技术支持邮件|Gingko@vip.163.com||| |技术支持邮件|Gingko@vip.163.com|||
-|技术论坛|http://​www.eeschool.org||| 
 ^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^ ^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^
 |  V1.0  |  2020-11-30 ​ |  yang  |  初次建立 ​ |  |  V1.0  |  2020-11-30 ​ |  yang  |  初次建立 ​ | 
  
 ===== 实验十:lv_led指示灯 ===== ===== 实验十:lv_led指示灯 =====
- 
-{{ :​icore4t:​icore4t_rtt_lvgl_9_1.png?​direct |}} 
- 
-<code c> 
- 
-</​code>​ 
  
 ==== 一、LED ==== ==== 一、LED ====
行 30: 行 23:
 void lv_gui_run(void) void lv_gui_run(void)
 { {
-lvgl2rtt_init("​lcd"​); ​                                     /* 初始化lvgl2rtt */+ lvgl2rtt_init("​lcd"​); ​                                     /* 初始化lvgl2rtt */
  
-label = lv_label_create(lv_scr_act(),​ NULL); ​          ​/* 创建标签 */ + label = lv_label_create(lv_scr_act(),​ NULL); ​              ​/* 创建标签 */ 
-lv_label_set_text(label,​ "​LED1"​); ​                       /* 设置标签文本 */ + lv_label_set_text(label,​ "​LED1"​); ​                         /* 设置标签文本 */ 
-lv_obj_align(label,​ NULL, LV_ALIGN_CENTER,​ 0, 0);     ​/* 中心对齐 */ + lv_obj_align(label,​ NULL, LV_ALIGN_CENTER,​ 0, 0);          /* 中心对齐 */ 
-lv_obj_t * led1 = lv_led_create(lv_scr_act(),​ NULL); /* 创建LED */ + lv_obj_t * led1 = lv_led_create(lv_scr_act(),​ NULL); ​      ​/* 创建LED */ 
-lv_obj_align(led1,​ label, LV_ALIGN_OUT_RIGHT_MID,​ 20, 0); + lv_obj_align(led1,​ label, LV_ALIGN_OUT_RIGHT_MID,​ 20, 0); 
-lv_led_off(led1); ​                                           /* 初始LED关闭 */ + lv_led_off(led1); ​                                         /* 初始LED关闭 */ 
-while(true){+ while(true){
      ​ rt_thread_mdelay(1000);​      ​ rt_thread_mdelay(1000);​
- lv_led_toggle(led1); ​                                   /* 翻转LED状态 */ + lv_led_toggle(led1); ​                              ​/* 翻转LED状态 */ 
-}+ }
 } }
 </​code>​ </​code>​
行 52: 行 45:
  
 <code c> <code c>
 +void lv_gui_run(void)
 +{
 +        lvgl2rtt_init("​lcd"​); ​                                         /* 初始化lvgl2rtt */
  
 + lv_obj_t * led1 = lv_led_create(lv_scr_act(),​ NULL); ​  /* 创建LED1 */
 + lv_obj_align(led1,​ NULL, LV_ALIGN_CENTER,​ -160, 0);    /* 相对位置 */
 + lv_led_off(led1); ​                                     /* 关闭LED */
 +
 + lv_obj_t * led2 = lv_led_create(lv_scr_act(),​ led1); ​  /* 创建LED2 */
 + lv_obj_align(led2,​ NULL, LV_ALIGN_CENTER,​ -80, 0);     /* 相对位置 */
 + lv_led_set_bright(led2,​ 120);                          /* 设置亮度值 */
 + lv_obj_t * led3 = lv_led_create(lv_scr_act(),​ led1); ​  /* 创建LED3 */
 + lv_obj_align(led3,​ NULL, LV_ALIGN_CENTER,​ 0, 0);       /* 相对位置 */
 + lv_led_set_bright(led3,​ 180);                          /* 设置亮度值 */
 + lv_obj_t * led4 = lv_led_create(lv_scr_act(),​ led1); ​  /* 创建LED4 */
 + lv_obj_align(led4,​ NULL, LV_ALIGN_CENTER,​ 80, 0);      /* 相对位置 */
 + lv_led_set_bright(led4,​ 240);                          /* 设置亮度值 */
 + lv_obj_t * led5 = lv_led_create(lv_scr_act(),​ led1); ​  /* 创建LED5 */ 
 + lv_obj_align(led5,​ NULL, LV_ALIGN_CENTER,​ 160, 0);     /* 相对位置 */
 + lv_led_on(led5); ​                                      /* 打开LED */
 +}
 </​code>​ </​code>​
 +
 ==== 四、事件 ==== ==== 四、事件 ====
  
 LED 支持通用事件,下面的例子就是将iCore4T板载LED与LED对象联系起来,通过点击LED对象或者标签来控制板载LED的亮灭,同时更新标签内容。 LED 支持通用事件,下面的例子就是将iCore4T板载LED与LED对象联系起来,通过点击LED对象或者标签来控制板载LED的亮灭,同时更新标签内容。
  
-{{ :icore4t:icore4t_rtt_lvgl_10_1.gif?direct |}}+{{ :icore4t:icore4t_rtt_lvgl_10_3.gif?direct |}}
  
 <code c> <code c>
 +#include <​board.h>​
 +#define LED0_PIN ​   GET_PIN(A, 10)                              /* 定义iCore4T的LED引脚 */
 +lv_obj_t * label;
 +lv_obj_t * led1;
  
 +static void event_handler(lv_obj_t * obj, lv_event_t event) /* 回调函数 */
 +{
 + if(event == LV_EVENT_PRESSED) {                         /* 按键状态切换的话 */
 + if(rt_pin_read(LED0_PIN) == PIN_LOW ){          /* 切换LED状态 */
 + rt_pin_write(LED0_PIN,​ PIN_HIGH);
 + lv_label_set_text(label,​ "LED off"​); ​   /* 更新标签内容 */
 + lv_led_off(led1); ​                      /* 更新LED状态 */
 + }else{
 + rt_pin_write(LED0_PIN,​ PIN_LOW);
 + lv_label_set_text(label,​ "#​ff0000 LED on#"); /* 更新标签内容并设为红色 */
 + lv_led_on(led1);​
 + }
 +        } 
 +}
 +void lv_gui_run(void)
 +{
 +lvgl2rtt_init("​lcd"​); ​                                          /* 初始化lvgl2rtt */
 + rt_pin_mode(LED0_PIN,​ PIN_MODE_OUTPUT); ​                /* 设置LED为推挽输出 */
 + rt_pin_write(LED0_PIN,​ PIN_HIGH); ​                      /* LED默认关闭 */
 +
 + label = lv_label_create(lv_scr_act(),​ NULL);
 + lv_label_set_text(label,​ "LED off");
 + lv_obj_set_click(label,​ true); ​                         /* 开启标签点击使能 */
 + lv_label_set_recolor(label,​ true); ​                     /* 开启标签重着色 */
 + lv_obj_align(label, ​ NULL, LV_ALIGN_CENTER,​ 0, 0);
 +
 + led1 = lv_led_create(lv_scr_act(),​ NULL); ​              /* 创建led对象 */
 + lv_obj_align(led1,​ label, LV_ALIGN_CENTER,​ 60, 0);
 + lv_led_off(led1);​
 +
 + lv_obj_set_event_cb(label,​ event_handler); ​            /* 添加回调函数 */
 + lv_obj_set_event_cb(led1,​ event_handler); ​             /* led对象与标签对象使用同一回调函数 */
 +}
 </​code>​ </​code>​
  
  
icore4tlvgl_10.1607155670.txt.gz · 最后更改: 2020/12/05 16:07 由 zgf