1、环境准备
2、新建lvgl 文件夹,把src 和lvgl.h 和lv_conf_template.h 放在lvgl 目录
3、把lv_conf_template.h 改为lv_conf.h
2、开始编写代码
1、修改lv_conf.h
把
#if 0 /*Set it to "1" to enable content*/
#define LV_USE_LINUX_FBDEV 0
#define LV_COLOR_DEPTH 16
#define LV_USE_LOG 0
改为
#if 1
#define LV_USE_LINUX_FBDEV 1
#define LV_COLOR_DEPTH 32
#define LV_USE_LOG 1
2、编写main.c
#include "lvgl.h"
int main(int argc, char *argv[])
{
/*LittlevGL init*/
lv_init();
lv_disp_t *disp=lv_linux_fbdev_create();
lv_linux_fbdev_set_file(disp,"/dev/fb0");
lv_obj_t * arc_r = lv_arc_create(disp->sys_layer);
lv_obj_set_size(arc_r, 100, 100);
lv_arc_set_rotation(arc_r, 135);
lv_arc_set_bg_angles(arc_r, 0, 270);
lv_arc_set_value(arc_r, 30);
lv_obj_center(arc_r);
while (1) {
lv_timer_handler();
lv_tick_inc(100); /*Tell LVGL that 10 milliseconds were elapsed*/
usleep(1000*100);//100ms 心跳
}
}
3、编写cmake
桌面版不用更改
linux 交叉编译版本设置你的交叉编译工具链即可
TOOLCHAIN_
PATHCMAKE_C_COMPILER
CMAKE_CXX_COMPILER
#1.cmake verson,指定cmake版本
cmake_minimum_required(VERSION 3.8)
#set(TOOLCHAIN_PATH /home/junlin/tina_t113/T113-S3-TinaSDK/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/)
#set(CMAKE_C_COMPILER /home/junlin/tina_t113/T113-S3-TinaSDK/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/arm-openwrt-linux-gcc)
#set(CMAKE_CXX_COMPILER /home/junlin/tina_t113/T113-S3-TinaSDK/prebuilt/gcc/linux-x86/arm/toolchain-sunxi-musl/toolchain/bin/arm-openwrt-linux-g++)
# C++ 版本
set(CMAKE_CXX_STANDARD 14)
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)
#2.project name,指定项目的名称,一般和项目的文件夹名称对应
PROJECT(lvgl)
#3.
INCLUDE_DIRECTORIES(
aerof/include/
./
src/
)
#3.添加依赖
#find_package(brclcpp REQUIRED)
#find_package(brclcpp_action REQUIRED)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
## Specify additional locations of header files
## Your package locations should be listed before other locations
#4.proto/ 子目录中所有的 .proto 文件,并生成静态库 brclcpp_action_example_protos.a
#file(GLOB_RECURSE ALL_PROTOS ${CMAKE_CURRENT_LIST_DIR}/proto/*.proto)
#protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${ALL_PROTOS})
#add_library(brclcpp_action_protos STATIC ${PROTO_SRCS})
#5.source directory,源文件目录
file(GLOB_RECURSE SRCS
src/*.c
main.c
)
#
#7.编译选项\添加库文件
# add_compile_options(-g)
#8.set environment variable,设置环境变量,编译用到的源文件全部都要放到这里,否则编译能够通过,但是执行的时候会出现各种问题,比如"symbol lookup error xxxxx , undefined symbol"
#SET(TEST_MATH
# ${DIR_SRCS}
# )
#9.add executable file,添加要编译的可执行文件
ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
#10.add link library,添加可执行文件所需要的库,比如我们用到了libevent.so(命名规则:lib+name+.so),就添加该库的名称
TARGET_LINK_LIBRARIES(${PROJECT_NAME}
pthread
rt
)
4、编译运行
mkdir build
cd build
cmake ..
make -j8
如果是ubuntu 那就是Ctrl +Alt+f3 进入 FB 模式
cd 你的lvgl 目录
sudo ./lvgl
3、我的工程代码地址
https://github.com/junlin-git/lvgl
LVGL说明文档地址
https://docs.lvgl.io/master/intro/index.html
如果对你有帮助,请给予作者一丝丝奖励