前言
最近出差比较多没有大块的时间来研究,另外,作为半路出家学编程的老电子爱好者,更偏重的是局部功能的应用,在例程的基础上修改是最直接有效的实现方法,今天我给大家介绍一下,动态字符显示的实现过程。
一、熟悉例程
CDK可以直接访问网上的例程,通过在welcome!界面搜索“ch2601”
可以找到RVB2601开发板的应用例程,选定例程点击创建工程。
项目将拷贝到本地,显示在Project view中
编译,下载,非常顺利,运行效果如下:
分析例程实现原理:
sta
tic 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