Linux  LittlevGL 使用

LittlevGL 是一个开源免费的GUI,支持触摸屏操作,移植简单方便,开发者一直在不断完善更新。LittlevGL 自带了丰富的控件:窗口、按键、标签、list、图表等,还可以自定义控件;支持很多特效:透明、阴影、自动显示隐藏滚动条、界面切换动画、图标打开关闭动画、平滑的拖拽控件、分层显示、反锯齿、仅耗少量内存的字体等等。

本文主要把LittlevGL移植到linux平台使用,在linux平台主要是通过 framebuffer实现的,在应用程序中,一般通过将 FrameBuffer 设备映射到进程地址空间的方式使用,比如下面的程序就打开 /dev/fb0 设备,并通过mmap 系统调用进行地址映射,随后用 memset 将屏幕清空,然后就可以对这段内存进行读写操作了。

编写基本的CMakeLists.txt文件,这里只加了一个main.c文件,该文件在/build目录下,cmake.sh 自动插入文件在../上一级目录生成一个CMakeLists.txt。

cmake_minimum_required(VERSION 3.12)
project(lvglv)#set(CMAKE_C_STANDARD 11)
SET(CROSS_COMPILE 1)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_C_COMPILER "/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")SET(TOOLCHAIN_DIR "/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/")
SET(CMAKE_FIND_ROOT_PATH  "/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf
" "/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf
/lib" "/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf
/include")
#include_directories(/home/zh/LICHEE/linux-licheepi-zero/include) //添加相关包含文件
link_directories(/home/zh/linux/nfs/rootfs/lib)//添加相关库文件aux_source_directory(. DIR_SRCS)set(CMAKE_INCLUDE_PATH "/home/zh/LVGL/build/lvgl")
#add_definitions(-D LV_LVGL_H_INCLUDE_SIMPLE)
#add_definitions(-D LV_CONF_INCLUDE_SIMPLE)
include_directories(${CMAKE_SOURCE_DIR}/build) add_executable(lvglv
main.c
)

配置cmake.sh 参数 配置CMakeLists.txt的程序文件。

rm -rf CMakeCache.txt CMakeFiles/
rm -rf ../CMakeLists.txt
cp CMakeLists.txt ../
chmod 777 ../CMakeLists.txt
find lv_drivers/* -name "*.c"  |sort > lv_drivers.txt
find lv_examples/* -name "*.c"  |sort > lv_examples.txt
find lvgl/* -name "*.c"  |sort > lvgl.txt
sed -i '/add_executable/r lv_drivers.txt' ../CMakeLists.txt
sed -i '/add_executable/r lv_examples.txt' ../CMakeLists.txt
sed -i '/add_executable/r lvgl.txt' ../CMakeLists.txt
rm -rf lv_drivers.txt lv_examples.txt lvgl.txt
cmake ..
make
cp lvglv /home/zh/linux/nfs/rootfs/lib

执行./cmake.sh,生成新的CMakeLists.txt

cmake_minimum_required(VERSION 3.12)
project(lvglv)#set(CMAKE_C_STANDARD 11)
SET(CROSS_COMPILE 1)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_C_COMPILER "/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc")SET(TOOLCHAIN_DIR "/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/")
SET(CMAKE_FIND_ROOT_PATH  "/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf
" "/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf
/lib" "/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf
/include")
#include_directories(/home/zh/LICHEE/linux-licheepi-zero/include)
link_directories(/home/zh/linux/nfs/rootfs/lib)aux_source_directory(. DIR_SRCS)set(CMAKE_INCLUDE_PATH "/home/zh/LVGL/build/lvgl")
#add_definitions(-D LV_LVGL_H_INCLUDE_SIMPLE)
#add_definitions(-D LV_CONF_INCLUDE_SIMPLE)
include_directories(${CMAKE_SOURCE_DIR}/build) add_executable(lvglv
lvgl/examples/porting/lv_port_disp_template.c
lvgl/examples/porting/lv_port_fs_template.c
lvgl/examples/porting/lv_port_indev_template.c
lvgl/src/lv_core/lv_disp.c
lvgl/src/lv_core/lv_group.c
lvgl/src/lv_core/lv_indev.c
lvgl/src/lv_core/lv_obj.c
lvgl/src/lv_core/lv_refr.c
lvgl/src/lv_core/lv_style.c
lvgl/src/lv_draw/lv_draw_arc.c
lvgl/src/lv_draw/lv_draw_blend.c
lvgl/src/lv_draw/lv_draw_img.c
lvgl/src/lv_draw/lv_draw_label.c
lvgl/src/lv_draw/lv_draw_line.c
lvgl/src/lv_draw/lv_draw_mask.c
lvgl/src/lv_draw/lv_draw_rect.c
lvgl/src/lv_draw/lv_draw_triangle.c
lvgl/src/lv_draw/lv_img_buf.c
lvgl/src/lv_draw/lv_img_cache.c
lvgl/src/lv_draw/lv_img_decoder.c
lvgl/src/lv_font/lv_font.c
lvgl/src/lv_font/lv_font_dejavu_16_persian_hebrew.c
lvgl/src/lv_font/lv_font_fmt_txt.c
lvgl/src/lv_font/lv_font_loader.c
lvgl/src/lv_font/lv_font_montserrat_10.c
lvgl/src/lv_font/lv_font_montserrat_12.c
lvgl/src/lv_font/lv_font_montserrat_12_subpx.c
lvgl/src/lv_font/lv_font_montserrat_14.c
lvgl/src/lv_font/lv_font_montserrat_16.c
lvgl/src/lv_font/lv_font_montserrat_18.c
lvgl/src/lv_font/lv_font_montserrat_20.c
lvgl/src/lv_font/lv_font_montserrat_22.c
lvgl/src/lv_font/lv_font_montserrat_24.c
lvgl/src/lv_font/lv_font_montserrat_26.c
lvgl/src/lv_font/lv_font_montserrat_28.c
lvgl/src/lv_font/lv_font_montserrat_28_compressed.c
lvgl/src/lv_font/lv_font_montserrat_30.c
lvgl/src/lv_font/lv_font_montserrat_32.c
lvgl/src/lv_font/lv_font_montserrat_34.c
lvgl/src/lv_font/lv_font_montserrat_36.c
lvgl/src/lv_font/lv_font_montserrat_38.c
lvgl/src/lv_font/lv_font_montserrat_40.c
lvgl/src/lv_font/lv_font_montserrat_42.c
lvgl/src/lv_font/lv_font_montserrat_44.c
lvgl/src/lv_font/lv_font_montserrat_46.c
lvgl/src/lv_font/lv_font_montserrat_48.c
lvgl/src/lv_font/lv_font_montserrat_8.c
lvgl/src/lv_font/lv_font_simsun_16_cjk.c
lvgl/src/lv_font/lv_font_unscii_8.c
lvgl/src/lv_gpu/lv_gpu_nxp_pxp.c
lvgl/src/lv_gpu/lv_gpu_nxp_pxp_osa.c
lvgl/src/lv_gpu/lv_gpu_nxp_vglite.c
lvgl/src/lv_gpu/lv_gpu_stm32_dma2d.c
lvgl/src/lv_hal/lv_hal_disp.c
lvgl/src/lv_hal/lv_hal_indev.c
lvgl/src/lv_hal/lv_hal_tick.c
lvgl/src/lv_misc/lv_anim.c
lvgl/src/lv_misc/lv_area.c
lvgl/src/lv_misc/lv_async.c
lvgl/src/lv_misc/lv_bidi.c
lvgl/src/lv_misc/lv_color.c
lvgl/src/lv_misc/lv_debug.c
lvgl/src/lv_misc/lv_fs.c
lvgl/src/lv_misc/lv_gc.c
lvgl/src/lv_misc/lv_ll.c
lvgl/src/lv_misc/lv_log.c
lvgl/src/lv_misc/lv_math.c
lvgl/src/lv_misc/lv_mem.c
lvgl/src/lv_misc/lv_printf.c
lvgl/src/lv_misc/lv_task.c
lvgl/src/lv_misc/lv_templ.c
lvgl/src/lv_misc/lv_txt_ap.c
lvgl/src/lv_misc/lv_txt.c
lvgl/src/lv_misc/lv_utils.c
lvgl/src/lv_themes/lv_theme.c
lvgl/src/lv_themes/lv_theme_empty.c
lvgl/src/lv_themes/lv_theme_material.c
lvgl/src/lv_themes/lv_theme_mono.c
lvgl/src/lv_themes/lv_theme_template.c
lvgl/src/lv_widgets/lv_arc.c
lvgl/src/lv_widgets/lv_bar.c
lvgl/src/lv_widgets/lv_btn.c
lvgl/src/lv_widgets/lv_btnmatrix.c
lvgl/src/lv_widgets/lv_calendar.c
lvgl/src/lv_widgets/lv_canvas.c
lvgl/src/lv_widgets/lv_chart.c
lvgl/src/lv_widgets/lv_checkbox.c
lvgl/src/lv_widgets/lv_cont.c
lvgl/src/lv_widgets/lv_cpicker.c
lvgl/src/lv_widgets/lv_dropdown.c
lvgl/src/lv_widgets/lv_gauge.c
lvgl/src/lv_widgets/lv_imgbtn.c
lvgl/src/lv_widgets/lv_img.c
lvgl/src/lv_widgets/lv_keyboard.c
lvgl/src/lv_widgets/lv_label.c
lvgl/src/lv_widgets/lv_led.c
lvgl/src/lv_widgets/lv_line.c
lvgl/src/lv_widgets/lv_linemeter.c
lvgl/src/lv_widgets/lv_list.c
lvgl/src/lv_widgets/lv_msgbox.c
lvgl/src/lv_widgets/lv_objmask.c
lvgl/src/lv_widgets/lv_objx_templ.c
lvgl/src/lv_widgets/lv_page.c
lvgl/src/lv_widgets/lv_roller.c
lvgl/src/lv_widgets/lv_slider.c
lvgl/src/lv_widgets/lv_spinbox.c
lvgl/src/lv_widgets/lv_spinner.c
lvgl/src/lv_widgets/lv_switch.c
lvgl/src/lv_widgets/lv_table.c
lvgl/src/lv_widgets/lv_tabview.c
lvgl/src/lv_widgets/lv_textarea.c
lvgl/src/lv_widgets/lv_tileview.c
lvgl/src/lv_widgets/lv_win.c
lvgl/tests/lv_test_assert.c
lvgl/tests/lv_test_core/lv_test_core.c
lvgl/tests/lv_test_core/lv_test_font_loader.c
lvgl/tests/lv_test_core/lv_test_obj.c
lvgl/tests/lv_test_core/lv_test_style.c
lvgl/tests/lv_test_fonts/font_1.c
lvgl/tests/lv_test_fonts/font_2.c
lvgl/tests/lv_test_fonts/font_3.c
lvgl/tests/lv_test_main.c
lvgl/tests/lv_test_widgets/lv_test_label.c
lv_examples/assets/img_cogwheel_alpha16.c
lv_examples/assets/img_cogwheel_argb.c
lv_examples/assets/img_cogwheel_chroma_keyed.c
lv_examples/assets/img_cogwheel_indexed16.c
lv_examples/assets/img_cogwheel_rgb.c
lv_examples/assets/img_hand.c
lv_examples/assets/lv_font_montserrat_12_compr_az.c
lv_examples/assets/lv_font_montserrat_16_compr_az.c
lv_examples/assets/lv_font_montserrat_28_compr_az.c
lv_examples/src/lv_demo_benchmark/lv_demo_benchmark.c
lv_examples/src/lv_demo_keypad_encoder/lv_demo_keypad_encoder.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_icon_bright.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_icon_eco.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_icon_hue.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_icon_pc.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_icon_tel.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_icon_wifi.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_btn_bg_1.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_btn_bg_2.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_btn_bg_3.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_btn_bg_4.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_cloud.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_copy.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_internet.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_mobile.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_no_internet.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_phone.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_print.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_printer2.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_ready.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_scan.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_scan_example.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_setup.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_usb.c
lv_examples/src/lv_demo_printer/images/lv_demo_printer_img_wave.c
lv_examples/src/lv_demo_printer/lv_demo_printer.c
lv_examples/src/lv_demo_printer/lv_demo_printer_theme.c
lv_examples/src/lv_demo_stress/lv_demo_stress.c
lv_examples/src/lv_demo_widgets/lv_demo_widgets.c
lv_examples/src/lv_ex_get_started/lv_ex_get_started_1.c
lv_examples/src/lv_ex_get_started/lv_ex_get_started_2.c
lv_examples/src/lv_ex_get_started/lv_ex_get_started_3.c
lv_examples/src/lv_ex_style/lv_ex_style_10.c
lv_examples/src/lv_ex_style/lv_ex_style_11.c
lv_examples/src/lv_ex_style/lv_ex_style_1.c
lv_examples/src/lv_ex_style/lv_ex_style_2.c
lv_examples/src/lv_ex_style/lv_ex_style_3.c
lv_examples/src/lv_ex_style/lv_ex_style_4.c
lv_examples/src/lv_ex_style/lv_ex_style_5.c
lv_examples/src/lv_ex_style/lv_ex_style_6.c
lv_examples/src/lv_ex_style/lv_ex_style_7.c
lv_examples/src/lv_ex_style/lv_ex_style_8.c
lv_examples/src/lv_ex_style/lv_ex_style_9.c
lv_examples/src/lv_ex_widgets/lv_ex_arc/lv_ex_arc_1.c
lv_examples/src/lv_ex_widgets/lv_ex_arc/lv_ex_arc_2.c
lv_examples/src/lv_ex_widgets/lv_ex_bar/lv_ex_bar_1.c
lv_examples/src/lv_ex_widgets/lv_ex_btn/lv_ex_btn_1.c
lv_examples/src/lv_ex_widgets/lv_ex_btn/lv_ex_btn_2.c
lv_examples/src/lv_ex_widgets/lv_ex_btnmatrix/lv_ex_btnmatrix_1.c
lv_examples/src/lv_ex_widgets/lv_ex_calendar/lv_ex_calendar_1.c
lv_examples/src/lv_ex_widgets/lv_ex_canvas/lv_ex_canvas_1.c
lv_examples/src/lv_ex_widgets/lv_ex_canvas/lv_ex_canvas_2.c
lv_examples/src/lv_ex_widgets/lv_ex_chart/lv_ex_chart_1.c
lv_examples/src/lv_ex_widgets/lv_ex_chart/lv_ex_chart_2.c
lv_examples/src/lv_ex_widgets/lv_ex_checkbox/lv_ex_checkbox_1.c
lv_examples/src/lv_ex_widgets/lv_ex_cont/lv_ex_cont_1.c
lv_examples/src/lv_ex_widgets/lv_ex_cpicker/lv_ex_cpicker_1.c
lv_examples/src/lv_ex_widgets/lv_ex_cpicker/lv_ex_cpicker_2.c
lv_examples/src/lv_ex_widgets/lv_ex_dropdown/lv_ex_dropdown_1.c
lv_examples/src/lv_ex_widgets/lv_ex_dropdown/lv_ex_dropdown_2.c
lv_examples/src/lv_ex_widgets/lv_ex_gauge/lv_ex_gauge_1.c
lv_examples/src/lv_ex_widgets/lv_ex_gauge/lv_ex_gauge_2.c
lv_examples/src/lv_ex_widgets/lv_ex_imgbtn/imgbtn_blue.c
lv_examples/src/lv_ex_widgets/lv_ex_imgbtn/imgbtn_green.c
lv_examples/src/lv_ex_widgets/lv_ex_imgbtn/lv_ex_imgbtn_1.c
lv_examples/src/lv_ex_widgets/lv_ex_img/lv_ex_img_1.c
lv_examples/src/lv_ex_widgets/lv_ex_img/lv_ex_img_2.c
lv_examples/src/lv_ex_widgets/lv_ex_img/lv_ex_img_3.c
lv_examples/src/lv_ex_widgets/lv_ex_keyboard/lv_ex_keyboard_1.c
lv_examples/src/lv_ex_widgets/lv_ex_label/lv_ex_label_1.c
lv_examples/src/lv_ex_widgets/lv_ex_label/lv_ex_label_2.c
lv_examples/src/lv_ex_widgets/lv_ex_label/lv_ex_label_3.c
lv_examples/src/lv_ex_widgets/lv_ex_led/lv_ex_led_1.c
lv_examples/src/lv_ex_widgets/lv_ex_line/lv_ex_line_1.c
lv_examples/src/lv_ex_widgets/lv_ex_linemeter/lv_ex_linemeter_1.c
lv_examples/src/lv_ex_widgets/lv_ex_list/lv_ex_list_1.c
lv_examples/src/lv_ex_widgets/lv_ex_msgbox/lv_ex_msgbox_1.c
lv_examples/src/lv_ex_widgets/lv_ex_msgbox/lv_ex_msgbox_2.c
lv_examples/src/lv_ex_widgets/lv_ex_obj/lv_ex_obj_1.c
lv_examples/src/lv_ex_widgets/lv_ex_objmask/lv_ex_objmask_1.c
lv_examples/src/lv_ex_widgets/lv_ex_objmask/lv_ex_objmask_2.c
lv_examples/src/lv_ex_widgets/lv_ex_page/lv_ex_page_1.c
lv_examples/src/lv_ex_widgets/lv_ex_roller/lv_ex_roller_1.c
lv_examples/src/lv_ex_widgets/lv_ex_slider/lv_ex_slider_1.c
lv_examples/src/lv_ex_widgets/lv_ex_slider/lv_ex_slider_2.c
lv_examples/src/lv_ex_widgets/lv_ex_spinbox/lv_ex_spinbox_1.c
lv_examples/src/lv_ex_widgets/lv_ex_spinner/lv_ex_spinner_1.c
lv_examples/src/lv_ex_widgets/lv_ex_switch/lv_ex_switch_1.c
lv_examples/src/lv_ex_widgets/lv_ex_table/lv_ex_table_1.c
lv_examples/src/lv_ex_widgets/lv_ex_tabview/lv_ex_tabview_1.c
lv_examples/src/lv_ex_widgets/lv_ex_templ.c
lv_examples/src/lv_ex_widgets/lv_ex_textarea/lv_ex_textarea_1.c
lv_examples/src/lv_ex_widgets/lv_ex_textarea/lv_ex_textarea_2.c
lv_examples/src/lv_ex_widgets/lv_ex_textarea/lv_ex_textarea_3.c
lv_examples/src/lv_ex_widgets/lv_ex_tileview/lv_ex_tileview_1.c
lv_examples/src/lv_ex_widgets/lv_ex_win/lv_ex_win_1.c
lv_drivers/display/drm.c
lv_drivers/display/fbdev.c
lv_drivers/display/GC9A01.c
lv_drivers/display/ILI9341.c
lv_drivers/display/monitor.c
lv_drivers/display/R61581.c
lv_drivers/display/SHARP_MIP.c
lv_drivers/display/SSD1963.c
lv_drivers/display/ST7565.c
lv_drivers/display/UC1610.c
lv_drivers/gtkdrv/gtkdrv.c
lv_drivers/indev/AD_touch.c
lv_drivers/indev/evdev.c
lv_drivers/indev/FT5406EE8.c
lv_drivers/indev/keyboard.c
lv_drivers/indev/libinput.c
lv_drivers/indev/mouse.c
lv_drivers/indev/mousewheel.c
lv_drivers/indev/XPT2046.c
lv_drivers/win_drv.c
main.c
)

主程序测试例子:

#include "lvgl/lvgl.h"/* 添加 fb 支持 */
#include "lv_drivers/display/fbdev.h"int main(void)
{/*LittlevGL init*/lv_init();/*Linux frame buffer device init*/fbdev_init();static lv_disp_buf_t draw_buf_dsc_1;static lv_color_t draw_buf_1[LV_HOR_RES_MAX * 10];//  static lv_disp_buf_t draw_buf_dsc_1;// static lv_color_t draw_buf_1[LV_HOR_RES_MAX * 10];                          /*A buffer for 10 rows*/lv_disp_buf_init(&draw_buf_dsc_1, draw_buf_1, NULL, LV_HOR_RES_MAX * 10);   /*Initialize the display buffer*//*Add a display the LittlevGL sing the frame buffer driver*/lv_disp_drv_t disp_drv;memset(&disp_drv,0,sizeof(lv_disp_drv_t));lv_disp_drv_init(&disp_drv);disp_drv.flush_cb = fbdev_flush;      /*It flushes the internal graphical buffer to the frame buffer*/disp_drv.hor_res = 800;disp_drv.ver_res = 480;disp_drv.buffer=&draw_buf_dsc_1;lv_disp_drv_register(&disp_drv);/* 选择示例启动 *///lv_demo_benchmark();
lv_demo_widgets();
//lv_demo_printer();
//lv_demo_keypad_encoder();/*Handle LitlevGL tasks (tickless mode)*/while(1) {lv_tick_inc(5);lv_task_handler();usleep(5000);}return 0;
}

最终生成:

Linux LittlevGL 使用相关推荐

  1. arm linux 中littlevgl支持tslib的方法

    1. 修改文件 lv_drv_conf.h,使用 linux下的触摸屏文件节点 /dev/input/event0 将 #  define USE_EVDEV  0     改为    #  defi ...

  2. 嵌入式Linux移植littlevgl7,安富莱V6移植littlevgl的前因后果,附移植好的工程(未优化)...

    你的酒我的故事. 那年我二十三四岁,不小心闯进了嵌入式的大本营,以为自己要发达了,几年后在路边开始要饭了 一.起因 做了一个智能家居产品,具有GUI交互的低配置网关,方案是F429B+32bitSDR ...

  3. littlevgl教程 Linux,树莓派littlevGL系列教程:容器控件(lv_cont)

    二 代码分析 用户可下载"圆弧对象(lv_arc)的使用"文章末尾的Demo工程(点击我直接下载),参考圆弧对象(lv_arc)的使用文章,将以下Demo代码复制到Demo工程te ...

  4. littlevgl教程 Linux,[笔记]在嵌入式linux上运行LittlevGL GUI demo 支持tslib

    // 1: 添加头文件包含 #include "tslib.h" // 2: ts结构体声明 struct tsdev *ts; // 3: 修改初始化代码 void evdev_ ...

  5. 【LittlevGL】模拟器

    LittlevGL提供的模拟器有很多种: 我使用的是VS版本的模拟器进行测试,github主页:https://github.com/littlevgl/pc_simulator_sdl_visual ...

  6. ubuntu18.04 littlevgl运行环境搭建

    1.下载代码: $git clone https://gitclone.com/github.com/littlevgl/pc_simulator.git $cd pc_simulator $git ...

  7. 推荐一款不错的嵌入式GUI(玲珑GUI)及在嵌入式linux上的移植

    玲珑GUI介绍 玲珑GUI(LLGUI)是一套使用简单.低价的单片机GUI解决方案.可以用来代替串口屏.组态,降低产品成本,产品软硬件自主可控. 配套界面开发软件,图形化编辑界面,生成C代码. 如其名 ...

  8. LittleVGL(LVGL)学习笔记——PC 模拟器的安装和使用(CodeBlocks)

    目录 一.简介 1.LittleVGL 所支持的 IDE 软件种类: 2.需要的工具: 二.安装配置软件和环境 1.littleVGL 模拟器库 2.安装CodeBlocks 三.创建工程项目 四.配 ...

  9. STM32收入高也好找工作,所以我学嵌入式linux终究是错付了吗

    STM32收入高也好找工作,所以我学嵌入式linux终究是错付了吗 经常有同学纠结问我:我到底是学STM32还是学嵌入式linux. 这个问题很多人都会有自己的看法,今天我试着从多个角度,把了解到的事 ...

  10. 搭建LittlevGL PC模拟器环境

    两周前,在查找一些嵌入式GUI库的相关资料的时候,经过反复搜索,终于被我发现了一个原始控件比较美观,并且开源的库--LittlevGL. 在了解过付费嵌入式GUI库的授权价格(授权价格为数千美元或者数 ...

最新文章

  1. java 理解break,continue,return
  2. ssh报错 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
  3. 三个实例演示 Java Thread Dump 日志分析
  4. 盘点18个免费的WordPress主题后台选项开发框架
  5. Java @Transient 注解使用
  6. SQL | 目录(持续更新)
  7. ret php,php生成器的send方法详解,php yield send
  8. FRM-92120: Registry.dat
  9. python绘制自定义地图_原来炫酷的可视化地图,用Python就能搞定!
  10. QCon上海2015精彩回顾和总结
  11. Logistic回归分析
  12. python 模拟登陆百度
  13. 实测 ubuntu20.04 机械式激光雷达与相机联合标定
  14. 利用随机数函数掷骰子
  15. 进行遥感图像数据融合的步骤:
  16. Kali Linux渗透测试——WEB渗透(一)
  17. android删除界面工具下载,安卓系统软件卸载工具
  18. 2013年3月山东综合性网站及社区网站 综合影响力排名
  19. 读1973年的弹子球有感。_北国的雪_新浪博客
  20. 无线AP容量及网络带宽计算方法

热门文章

  1. 电脑没网络在计算机哪,电脑没有wifi连接功能在哪里设置
  2. 矿产资源勘查评价的新进展——GIS在矿产资源评价中的应用
  3. 明尼苏达计算机科学与工程,2019上海软科世界一流学科排名计算机科学与工程专业排名明尼苏达大学双城分校排名第101-150...
  4. Excel知识技能汇总
  5. js 去掉浏览器打印默认的页头页尾和打印背景图片
  6. 列联表与独立性检验(一维列联表 二维列联表 三维列联表 ; 卡方检验 Fisher精确检验 Cochran-Mantel-Haenszel检验)
  7. crm客户管理系统总结
  8. linux系统修改Mac地址
  9. 自然之州阿肯色及温泉国家公园
  10. Docker基础(二)