目录
- 下载MounRiver
- 开发板介绍
- 环境创建
- LVGL移植
- 文件准备
- LVGL配置文件
- LVGL port文件
- lv_example测试
- 插曲
- 编译运行
- Link.ld配置
1. 下载MounRiver
官网下载,然后直接无脑下一步就好了 MounRiver Studio
别看篇幅长 ,移植教程一点都不难,就是图多,为了方便大家跟着走
2. 开发板介绍
本次使用的开发板是用了「赤菟CH32V307开发板」详细介绍链接
基于 CH32V307VCT6 ,RISC-V 内核
3. 环境创建
避免篇幅过长,直接参考这个链接
看完上面的链接然后再看下面的
由于默认模板和「赤菟CH32V307开发板」的 MEMORY
字段不匹配,特别注意这个,这个不急,看一眼就行,下面会提到:
4. LVGL移植
1. 文件准备
移植LVGL肯定要下载LVGL啦,在 MRS 项目的根目录下,使用 Terminal 执行
git clone https://github.com/lvgl/lvgl.git -b release/v8.2
然后下载官方提供的 LCD库函数
,来到Gitee仓库
下载这两个文件,led.c
led.h
下载之后,放到自己的 User
目录下
2. 配置文件
将 lv_conf_example.h
改为 lv_conf.h
将其使能
3. LVGL_port文件
将 lv_port_disp_template.c
改成 lv_port_disp.c
将 lv_port_disp_template.h
改成 lv_port_disp.h
进入lv_port_disp.h
,添加
#include "lcd.h"
#define MY_DISP_HOR_RES LCD_H
#define MY_DISP_VER_RES LCD_W
进入lv_port_disp.c
,修改
在此文件,修改,三种形式,这里选择第一种移植,剩下的两种注释掉
在此文件的 disp_flush
函数,添加描点函数,此函数位于led.c
lcd_draw_point_color(x, y, color_p->full);
4. 使用 lv_example 测试
返回 main.c
删除所有,然后修改如下
#include "debug.h"
#include "lvgl.h"
#include "lcd.h"
#include "lv_port_disp.h"
#include "lv_examples.h"
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
Delay_Init();
USART_Printf_Init(115200);
printf("SystemClk:%d\r\n",SystemCoreClock);
lcd_init();
LCD_SetBrightness(40);
lv_init();
lv_port_disp_init();
lv_example_meter_1();
while(1)
{
lv_tick_inc(1);
lv_task_handler();
Delay_Ms(1);
}
}
! 插曲!!!
都移植到这里了--- 没想出来差点啥?
是的!我们要指定文件路径呀!!!
右键你的工程,点击属性,添加选住的地方,(没办法,复制不来)
5. 编译运行
差了一步?No No No, 你编译之后知道了,如果没报错,恭喜你!报错了?别慌
看看报的啥错误,头文件错误直接去对应文件改就行
要是报.BSS
段错误,来看第六个
6. 修改link.ld
编译运行,下载就好了。
本文完----
参考:
Little VGL(LVGL)图形库移植到CH32V307单片机(二)