芯片开放社区
直播中

乔丽娜

7年用户 1059经验值
私信 关注
[技术讨论]

【平头哥RVB2601开发板试用体验】—动态字符显示

前言

   最近出差比较多没有大块的时间来研究,另外,作为半路出家学编程的老电子爱好者,更偏重的是局部功能的应用,在例程的基础上修改是最直接有效的实现方法,今天我给大家介绍一下,动态字符显示的实现过程。


一、熟悉例程


CDK可以直接访问网上的例程,通过在welcome!界面搜索“ch2601”

可以找到RVB2601开发板的应用例程,选定例程点击创建工程。


项目将拷贝到本地,显示在Project view中


编译,下载,非常顺利,运行效果如下:


分析例程实现原理:

static void gui_label_create(void)
{
   lv_obj_t *p = lv_label_create(lv_scr_act(), NULL);
   lv_label_set_long_mode(p, LV_LABEL_LONG_BREAK);
   lv_label_set_align(p, LV_LABEL_ALIGN_CENTER);
   lv_obj_set_pos(p, 0, 4);
   lv_obj_set_size(p, 128, 60);
   lv_label_set_text(p, "THEAD RISC-VnGUInDEMO");
}

我们可以看到:要显示的字符内容是:"THEAD RISC-VnGUInDEMO",通过函数:lv_label_set_text就可以设置要显示的内容。

二、在例程的基础上,实现更多的应用

修改程序,显示两行字符串。


还可以进行横向滚屏显示






代码如下:

static void gui_label_create2( void)
{
   lv_obj_t* label2 = lv_label_create(lv_scr_act(), NULL);
   lv_label_set_long_mode(label2, LV_LABEL_LONG_SROLL_CIRC);     /*Circular scroll*/
   lv_obj_set_width(label2, 150);
   lv_label_set_text(label2, "It is a circularly scrolling text. ");
   lv_obj_align(label2, NULL, LV_ALIGN_CENTER, 0, 20);

}


更多的时候我们需要动态显示字符串,代码如下:


while (1) {
       /* Periodically call the lv_task handler.
        * It could be done in a timer interrupt or an OS task too.*/
       lv_task_handler();
      
       aos_msleep(5);
       lv_tick_inc(1);
        
       count++;
       itoa(count,buff,10);
       lv_obj_set_pos(p, 60, 32);
       lv_label_set_text(p, buff);
        
        
    }

文章转载自:平头哥芯片开放社区 作者:hh_wolf

更多回帖

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