打印
[应用相关]

国民技术N32G45X移植LVGL8.3+ILI9488

[复制链接]
楼主: g36xcv
手机看帖
扫描二维码
随时随地手机跟帖
21
g36xcv|  楼主 | 2023-5-26 23:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
添加lvgl心跳
  定时器配置为1ms的中断
在定时器中断函数中添加lv_tick_inc(1);
void TIMX_IRQHandler(void)
{
    if (TIM_GetIntStatus(TIMX, TIM_INT_UPDATE) != RESET)
    {
        TIM_ClrIntPendingBit(TIMX, TIM_INT_UPDATE);
                lv_tick_inc(1);
        /* Pin PC.06 toggling */
//        GPIO_WriteBit(GPIOC, GPIO_PIN_6, (Bit_OperateType)(1 - GPIO_ReadOutputDataBit(GPIOC, GPIO_PIN_6)));
    }
}




使用特权

评论回复
22
g36xcv|  楼主 | 2023-5-26 23:49 | 只看该作者
对main.c文件进行操作

    添加LVGL相关头文件
    加入LVGL测试程序


#include "main.h"
#include "NZ_BitBand.h"
#include "delay.h"

#include "time.h"
#include "lcd.h"
#include "lvgl.h"
#include "lv_port_disp.h"

void lv_example_led_1(void)
{
    /*Create a LED and switch it OFF*/
    lv_obj_t * led1  = lv_led_create(lv_scr_act());
    lv_obj_align(led1, LV_ALIGN_CENTER, -80, 0);
    lv_led_off(led1);

    /*Copy the previous LED and set a brightness*/
    lv_obj_t * led2  = lv_led_create(lv_scr_act());
    lv_obj_align(led2, LV_ALIGN_TOP_LEFT, 0, 0);
    lv_led_set_brightness(led2, 150);
    lv_led_set_color(led2, lv_palette_main(LV_PALETTE_RED));

    /*Copy the previous LED and switch it ON*/
    lv_obj_t * led3  = lv_led_create(lv_scr_act());
    lv_obj_align(led3, LV_ALIGN_CENTER, 80, 0);
    lv_led_on(led3);
}
int main(void)
{
        TIME_Configuration_Init(5,5999);
        LCD_Init();
        lv_init();                      // lvgl系统初始化
        lv_port_disp_init();  // lvgl显示接口初始化,放在lv_init()的后面        
        
        lv_example_led_1();
        while(1)
        {
            lv_task_handler(); // lvgl的事务处理
        }
}




使用特权

评论回复
23
g36xcv|  楼主 | 2023-5-26 23:50 | 只看该作者
程序编译运行

    程序编译后进行烧录,发现全屏只显示一个颜色


使用特权

评论回复
24
g36xcv|  楼主 | 2023-5-26 23:51 | 只看该作者
屏幕显示不正常,经过检查后发现,ILI9488的填充函数不对,正确的函数如下:
//在指定区域内填充指定颜色块             
//(sx,sy),(ex,ey):填充矩形对角坐标,区域大小为:(ex-sx+1)*(ey-sy+1)   
//color:要填充的颜色
void LCD_Color_Fill(u16 sx, u16 sy, u16 ex, u16 ey, u16 *color)
{
    u16 height, width;
    u16 i, j;
    width = ex - sx + 1;  //得到填充的宽度
    height = ey - sy + 1; //高度
    if (lcddev.id == 0X9486 || lcddev.id == 0X9488)
    {
        for (i = sy; i < ey + 1; i++)
        {
            for (j = sx; j < ex + 1; j++)
                LCD_Fast_DrawPoint(j, i, color[(i - sy) * width + (j - sx)]);
        }
    }
    else
    {
        for (i = 0; i < height; i++)
        {
            LCD_SetCursor(sx, sy + i); //设置光标位置
            LCD_WriteRAM_Prepare();    //开始写入GRAM
            for (j = 0; j < width; j++)
                LCD->LCD_RAM = color[i * width + j]; //写入数据
        }
    }
}




使用特权

评论回复
25
g36xcv|  楼主 | 2023-5-26 23:52 | 只看该作者
经过修改后,屏幕最终可以正常显示


使用特权

评论回复
26
g36xcv|  楼主 | 2023-5-26 23:53 | 只看该作者
总结

LVGL移植过程中,难免会有一些困难,但移植次数多了,后边会发现基本都差不多的,主要的问题点无非就那几种,堆栈溢出了报错、屏幕填充函数错误、LVGL内存溢出等方面原因。最后的链接中有提供初始项目工程以及移植好的工程,有需要的伙伴可以拿去参考下。

链接:https://pan.baidu.com/s/1fxSSeKr2Vq0WmGyagiMjmQ
提取码:gfep

使用特权

评论回复
27
ulystronglll| | 2023-6-6 12:34 | 只看该作者
lvgl和emwin哪个好用               

使用特权

评论回复
28
biechedan| | 2023-6-6 13:27 | 只看该作者
在使用LVGL库时,还需要了解相关的API接口和配置参数,以及特定的芯片平台和外设驱动的适配问题。

使用特权

评论回复
29
robincotton| | 2023-6-6 13:35 | 只看该作者
下载地址:https://github.com/lvgl/lvgl

使用特权

评论回复
30
vivilyly| | 2023-6-6 13:43 | 只看该作者
通过调用lv_obj_create()函数来创建GUI对象,例如按钮、标签、列表等控件,并根据需要设置相关属性和事件回调函数。

使用特权

评论回复
31
alvpeg| | 2023-6-6 14:38 | 只看该作者
lvgl8和lvgl7区别是什么

使用特权

评论回复
32
cashrwood| | 2023-6-6 14:49 | 只看该作者
LVGL还提供了图形、文字转换工具等

使用特权

评论回复
33
elsaflower| | 2023-6-6 15:02 | 只看该作者
具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。

使用特权

评论回复
34
juliestephen| | 2023-6-6 17:17 | 只看该作者
LVGL是一个免费的开放源代码图形库  

使用特权

评论回复
35
alvpeg| | 2023-6-6 17:33 | 只看该作者
可以参考LVGL官方文档和示例代码

使用特权

评论回复
36
Q1n| | 2023-6-8 15:07 | 只看该作者
本帖最后由 Q1n 于 2023-6-8 15:14 编辑

想问问版主对ram的占用大吗?

使用特权

评论回复
37
wwppd| | 2023-6-8 22:32 | 只看该作者
LVGL是一种开源的小型嵌入式GUI库,界面比较符合现代的审美观点

使用特权

评论回复
38
chenqianqian| | 2023-6-12 09:20 | 只看该作者
LVGL现在的普及率挺高的啊

使用特权

评论回复
39
jobszheng| | 2023-6-12 14:27 | 只看该作者
回头我也试试我的N32G455芯片的LVGL图形库的移植去

使用特权

评论回复
40
鹿鼎计| | 2023-8-3 12:09 | 只看该作者
可以参考LVGL官方文档和示例代码吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则