LVGL移植到AT403

    技术2023-10-31  102

    考虑到GUI一般比较吃内存,使用403,本芯片可以配置开启最大224KB SRAM。

    和其它开源软件类似,移植源码,移植接口,加几个头文件基本上就OK了。

    这个GUI最简单的是只要移植刷位图就可以。

    代码可以优化不少,直接使用DMA可以快速的发送一些列连续的数据。测试SPI 50M处理480x320.

    效果还行。

    加入RTOS后刷屏可以加入信号量,使用中断唤醒刷新任务,高效率实现刷屏。

    配置刷多少行。如果内存够直接开两个显存,效果最完美,内存不大不小,可以适当配置。

    内存耗费:60*320*2*2 = 75K(显示缓冲区) 64KB动态内存池。

    由于我使用的是TFT是18位模式,所以开辟了一个大内存作为动态内存分配池。

    实际使用可以适当减小。设置行数也是一样。

    调用LVGL最基础的调用 lv_init();

    // 定义风格 static lv_style_t lv_style_list; //LV_SYMBOL_HOME lv_style_init(&lv_style_list); // 声明引用外部目标函数 extern lv_font_t myFont; // 给style重新定向字体 lv_style_set_text_font(&lv_style_list, LV_STATE_DEFAULT, &myFont); // 定时空间 lv_obj_t * bar1 = lv_bar_create(lv_scr_act(), NULL); lv_obj_set_size(bar1, 200, 20); lv_obj_align(bar1, NULL, LV_ALIGN_CENTER, 0, 0); lv_bar_set_anim_time(bar1, 1000); lv_bar_set_value(bar1, 50, LV_ANIM_ON); // 创建标签空间 label = lv_label_create(lv_scr_act(), NULL); // 装载新的style 给标签。 lv_obj_add_style(label, LV_OBJ_PART_MAIN, &lv_style_list);

     

     

    Processed: 0.016, SQL: 9