学习的是正点原子的例程,跟着自己敲了些中文注释,特此分享

 /*** @file lv_conf.h**//** COPY THIS FILE AS `lv_conf.h` NEXT TO the `lvgl` FOLDER*/#if 1 /*Set it to "1" to enable content*/#ifndef LV_CONF_H
#define LV_CONF_H
/* clang-format off */#include <stdint.h>/*====================Graphical settings*====================*///屏幕分辨率
#define LV_HOR_RES_MAX          (480)  //320
#define LV_VER_RES_MAX          (800)  //480/* Color depth:* - 1:  1 byte per pixel* - 8:  RGB233* - 16: RGB565* - 32: ARGB8888*/
#define LV_COLOR_DEPTH     16//色域 默认为16/* Swap the 2 bytes of RGB565 color.* Useful if the display has a 8 bit interface (e.g. SPI)*/
#define LV_COLOR_16_SWAP   0//色域修改 默认不使能/* 1: Enable screen transparency.* Useful for OSD or other overlapping GUIs.* Requires `LV_COLOR_DEPTH = 32` colors and the screen's style should be modified: `style.body.opa = ...`*/
#define LV_COLOR_SCREEN_TRANSP    0/*Images pixels with this color will not be drawn (with chroma keying)*/
#define LV_COLOR_TRANSP    LV_COLOR_LIME         /*LV_COLOR_LIME: pure green*实际图片中不显示现在设置的颜色//* Enable anti-aliasing (lines, and radiuses will be smoothed) */
#define LV_ANTIALIAS        1 //使能抗锯齿 使字体光滑/* Default display refresh period.屏幕刷新周期,默认30(ms)* Can be changed in the display driver (`lv_disp_drv_t`).*/
#define LV_DISP_DEF_REFR_PERIOD      30      /*[ms]*//* Dot Per Inch: used to initialize default sizes.* E.g. a button with width = LV_DPI / 2 -> half inch wide界面的放大比例* (Not so important, you can adjust it to modify default sizes and spaces)*/
#define LV_DPI              60     /*[px]*/ /* Type of coordinates. Should be `int16_t` (or `int32_t` for extreme cases) */
typedef int16_t lv_coord_t;//坐标的类型/*=========================Memory manager settings*=========================*//* LittelvGL's internal memory manager's settings.* The graphical objects and other related data are stored here. *//* 1: use custom malloc/free, 0: use the built-in `lv_mem_alloc` and `lv_mem_free` */
#define LV_MEM_CUSTOM      0  //内存管理 如果宏定义为0 使用lvgl自带的内存管理,如果为1,使用你自己的内存管理
#if LV_MEM_CUSTOM == 0
/* Size of the memory used by `lv_mem_alloc` in bytes (>= 2kB)*/
#  define LV_MEM_SIZE    (16U * 1024U)//交给lvgl堆的大小/* Complier prefix for a big array declaration */
#  define LV_MEM_ATTR //一般用来设置字节对齐,默认留空/* Set an address for the memory pool instead of allocating it as an array.* Can be in external SRAM too. */
#  define     LV_MEM_ADR        0 //外部sram的地址,注意不要和显示缓冲器冲突/* Automatically defrag. on free. Defrag. means joining the adjacent free cells. */
#  define LV_MEM_AUTO_DEFRAG  1 //碎片化整理,默认使能
#else       /*LV_MEM_CUSTOM*/
#  define LV_MEM_CUSTOM_INCLUDE <stdlib.h>   /*Header for the dynamic memory function*/
#  define LV_MEM_CUSTOM_ALLOC   malloc       /*Wrapper to malloc*/
#  define LV_MEM_CUSTOM_FREE    free         /*Wrapper to free*/
#endif     /*LV_MEM_CUSTOM*//* Garbage Collector settings* Used if lvgl is binded to higher level language and the memory is managed by that language */
#define LV_ENABLE_GC 0  //高级语言用到,默认不使能
#if LV_ENABLE_GC != 0
#  define LV_GC_INCLUDE "gc.h"                           /*Include Garbage Collector related things*/
#  define LV_MEM_CUSTOM_REALLOC   your_realloc           /*Wrapper to realloc*/
#  define LV_MEM_CUSTOM_GET_SIZE  your_mem_get_size      /*Wrapper to lv_mem_get_size*/
#endif /* LV_ENABLE_GC *//*=======================Input device settings*=======================*//* Input device default settings.* Can be changed in the Input device driver (`lv_indev_drv_t`)*//* Input device read period in milliseconds */
#define LV_INDEV_DEF_READ_PERIOD          30//触摸屏扫描周期/* Drag threshold in pixels */
#define LV_INDEV_DEF_DRAG_LIMIT           10//误差值,移动十个像素才认为你在移动/* Drag throw slow-down in [%]. Greater value -> faster slow-down */
#define LV_INDEV_DEF_DRAG_THROW           20 //惯性,值越小,惯性越大,移动越远/* Long press time in milliseconds.* Time to send `LV_EVENT_LONG_PRESSSED`) */
#define LV_INDEV_DEF_LONG_PRESS_TIME      400//长按时间,大概长按多少毫秒,认为这是一次有效的长按。/* Repeated trigger period in long press [ms]* Time between `LV_EVENT_LONG_PRESSED_REPEAT */
#define LV_INDEV_DEF_LONG_PRESS_REP_TIME  100 //重复长按的间隔/*==================* Feature usage*==================*//*1: Enable the Animations */
#define LV_USE_ANIMATION        1 //是否使能动画
#if LV_USE_ANIMATION/*Declare the type of the user data of animations (can be e.g. `void *`, `int`, `struct`)*/
typedef void * lv_anim_user_data_t;#endif/* 1: Enable shadow drawing*/
#define LV_USE_SHADOW           1 //阴影效果是否使能/* 1: Enable object groups (for keyboard/encoder navigation) */
#define LV_USE_GROUP            1 //分组,上下左右的导航,看实际情况开启或者不开启
#if LV_USE_GROUP
typedef void * lv_group_user_data_t;
#endif  /*LV_USE_GROUP*//* 1: Enable GPU interface*/
#define LV_USE_GPU              0 //没有gpu 所以关闭/* 1: Enable file system (might be required for images */
#define LV_USE_FILESYSTEM       0 //不使用他的文件系统
#if LV_USE_FILESYSTEM
/*Declare the type of the user data of file system drivers (can be e.g. `void *`, `int`, `struct`)*/
typedef void * lv_fs_drv_user_data_t;
#endif/*1: Add a `user_data` to drivers and objects*/
#define LV_USE_USER_DATA        0 //携带值/*========================* Image decoder and cache*========================*//* 1: Enable indexed (palette) images */
#define LV_IMG_CF_INDEXED       1/* 1: Enable alpha indexed images */
#define LV_IMG_CF_ALPHA         1/* Default image cache size. Image caching keeps the images opened.* If only the built-in image formats are used there is no real advantage of caching.* (I.e. no new image decoder is added)* With complex image decoders (e.g. PNG or JPG) caching can save the continuous open/decode of images.* However the opened images might consume additional RAM.* LV_IMG_CACHE_DEF_SIZE must be >= 1 */
#define LV_IMG_CACHE_DEF_SIZE       1/*Declare the type of the user data of image decoder (can be e.g. `void *`, `int`, `struct`)*/
typedef void * lv_img_decoder_user_data_t;/*=====================*  Compiler settings*====================*/
/* Define a custom attribute to `lv_tick_inc` function */
#define LV_ATTRIBUTE_TICK_INC/* Define a custom attribute to `lv_task_handler` function */
#define LV_ATTRIBUTE_TASK_HANDLER/* With size optimization (-Os) the compiler might not align data to* 4 or 8 byte boundary. This alignment will be explicitly applied where needed.* E.g. __attribute__((aligned(4))) */
#define LV_ATTRIBUTE_MEM_ALIGN/* Attribute to mark large constant arrays for example* font's bitmaps */
#define LV_ATTRIBUTE_LARGE_CONST    /*===================*  HAL settings*==================*//* 1: use a custom tick source.* It removes the need to manually update the tick with `lv_tick_inc`) */
#define LV_TICK_CUSTOM     0
#if LV_TICK_CUSTOM == 1
#define LV_TICK_CUSTOM_INCLUDE  "something.h"       /*Header for the sys time function*/
#define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis())     /*Expression evaluating to current systime in ms*/
#endif   /*LV_TICK_CUSTOM*/typedef void * lv_disp_drv_user_data_t;             /*Type of user data in the display driver*/
typedef void * lv_indev_drv_user_data_t;            /*Type of user data in the input device driver*//*================* Log settings*===============*//*1: Enable the log module*/
#define LV_USE_LOG      0
#if LV_USE_LOG
/* How important log should be added:* LV_LOG_LEVEL_TRACE       A lot of logs to give detailed information* LV_LOG_LEVEL_INFO        Log important events* LV_LOG_LEVEL_WARN        Log if something unwanted happened but didn't cause a problem* LV_LOG_LEVEL_ERROR       Only critical issue, when the system may fail* LV_LOG_LEVEL_NONE        Do not log anything*/
#  define LV_LOG_LEVEL    LV_LOG_LEVEL_WARN/* 1: Print the log with 'printf';* 0: user need to register a callback with `lv_log_register_print`*/
#  define LV_LOG_PRINTF   0
#endif  /*LV_USE_LOG*//*================*  THEME USAGE  官方自带的8种主题*================*/
#define LV_THEME_LIVE_UPDATE    1   /*1: Allow theme switching at run time. Uses 8..10 kB of RAM*切换主题/#define LV_USE_THEME_TEMPL      1   /*Just for test*/
#define LV_USE_THEME_DEFAULT    1   /*Built mainly from the built-in styles. Consumes very few RAM*/
#define LV_USE_THEME_ALIEN      1   /*Dark futuristic theme*/
#define LV_USE_THEME_NIGHT      1   /*Dark elegant theme*/
#define LV_USE_THEME_MONO       1   /*Mono color theme for monochrome displays*/
#define LV_USE_THEME_MATERIAL   1   /*Flat theme with bold colors and light shadows*/
#define LV_USE_THEME_ZEN        1   /*Peaceful, mainly light theme */
#define LV_USE_THEME_NEMO       1   /*Water-like theme based on the movie "Finding Nemo"*//*==================*    FONT USAGE*===================*//* The built-in fonts contains the ASCII range and some Symbols with  4 bit-per-pixel.* The symbols are available via `LV_SYMBOL_...` defines* More info about fonts: https://docs.littlevgl.com/#Fonts* To create a new font go to: https://littlevgl.com/ttf-font-to-c-array*//* Robot fonts with bpp = 4* https://fonts.google.com/specimen/Roboto  */
#define LV_FONT_ROBOTO_12    0   //字体大小,12,16,22,28号字体
#define LV_FONT_ROBOTO_16    1
#define LV_FONT_ROBOTO_22    0
#define LV_FONT_ROBOTO_28    0/*Pixel perfect monospace font* http://pelulamu.net/unscii/ */
#define LV_FONT_UNSCII_8     0/* Optionally declare your custom fonts here.* You can use these fonts as default font too* and they will be available globally. E.g.* #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) \*                                LV_FONT_DECLARE(my_font_2)*/
#define LV_FONT_CUSTOM_DECLARE  //用来声明自己创建的字体/*Always set a default font from the built-in fonts*/
#define LV_FONT_DEFAULT        &lv_font_roboto_16  //配置默认字体/* Enable it if you have fonts with a lot of characters.* The limit depends on the font size, font face and bpp* but with > 10,000 characters if you see issues probably you need to enable it.*/
#define LV_FONT_FMT_TXT_LARGE   0/*Declare the type of the user data of fonts (can be e.g. `void *`, `int`, `struct`)*/
typedef void * lv_font_user_data_t;/*=================*  Text settings*=================*//* Select a character encoding for strings.* Your IDE or editor should have the same character encoding* - LV_TXT_ENC_UTF8* - LV_TXT_ENC_ASCII* */
#define LV_TXT_ENC LV_TXT_ENC_UTF8   //字体的编码方式/*Can break (wrap) texts on these chars*/
#define LV_TXT_BREAK_CHARS                  " ,.;:-_"/*===================*  LV_OBJ SETTINGS*==================*//*Declare the type of the user data of object (can be e.g. `void *`, `int`, `struct`)*/
typedef void * lv_obj_user_data_t;/*1: enable `lv_obj_realaign()` based on `lv_obj_align()` parameters*/
#define LV_USE_OBJ_REALIGN          1/* Enable to make the object clickable on a larger area.* LV_EXT_CLICK_AREA_OFF or 0: Disable this feature* LV_EXT_CLICK_AREA_TINY: The extra area can be adjusted horizontally and vertically (0..255 px)* LV_EXT_CLICK_AREA_FULL: The extra area can be adjusted in all 4 directions (-32k..+32k px)*/
#define LV_USE_EXT_CLICK_AREA  LV_EXT_CLICK_AREA_OFF/*==================*  LV OBJ X USAGE*================*/
/** Documentation of the object types: https://docs.littlevgl.com/#Object-types*/
//控件的使能和失能
/*Arc (dependencies: -)*/
#define LV_USE_ARC      1/*Bar (dependencies: -)*/
#define LV_USE_BAR      1/*Button (dependencies: lv_cont*/
#define LV_USE_BTN      1
#if LV_USE_BTN != 0
/*Enable button-state animations - draw a circle on click (dependencies: LV_USE_ANIMATION)*/
#  define LV_BTN_INK_EFFECT   0
#endif/*Button matrix (dependencies: -)*/
#define LV_USE_BTNM     1/*Calendar (dependencies: -)*/
#define LV_USE_CALENDAR 1/*Canvas (dependencies: lv_img)*/
#define LV_USE_CANVAS   1/*Check box (dependencies: lv_btn, lv_label)*/
#define LV_USE_CB       1/*Chart (dependencies: -)*/
#define LV_USE_CHART    1
#if LV_USE_CHART
#  define LV_CHART_AXIS_TICK_LABEL_MAX_LEN    20
#endif/*Container (dependencies: -*/
#define LV_USE_CONT     1/*Drop down list (dependencies: lv_page, lv_label, lv_symbol_def.h)*/
#define LV_USE_DDLIST    1
#if LV_USE_DDLIST != 0
/*Open and close default animation time [ms] (0: no animation)*/
#  define LV_DDLIST_DEF_ANIM_TIME     200
#endif/*Gauge (dependencies:lv_bar, lv_lmeter)*/
#define LV_USE_GAUGE    1/*Image (dependencies: lv_label*/
#define LV_USE_IMG      1/*Image Button (dependencies: lv_btn*/
#define LV_USE_IMGBTN   1
#if LV_USE_IMGBTN
/*1: The imgbtn requires left, mid and right parts and the width can be set freely*/
#  define LV_IMGBTN_TILED 0
#endif/*Keyboard (dependencies: lv_btnm)*/
#define LV_USE_KB       1/*Label (dependencies: -*/
#define LV_USE_LABEL    1
#if LV_USE_LABEL != 0
/*Hor, or ver. scroll speed [px/sec] in 'LV_LABEL_LONG_ROLL/ROLL_CIRC' mode*/
#  define LV_LABEL_DEF_SCROLL_SPEED       25/* Waiting period at beginning/end of animation cycle */
#  define LV_LABEL_WAIT_CHAR_COUNT        3/*Enable selecting text of the label */
#  define LV_LABEL_TEXT_SEL               0/*Store extra some info in labels (12 bytes) to speed up drawing of very long texts*/
#  define LV_LABEL_LONG_TXT_HINT          0
#endif/*LED (dependencies: -)*/
#define LV_USE_LED      1/*Line (dependencies: -*/
#define LV_USE_LINE     1/*List (dependencies: lv_page, lv_btn, lv_label, (lv_img optionally for icons ))*/
#define LV_USE_LIST     1
#if LV_USE_LIST != 0
/*Default animation time of focusing to a list element [ms] (0: no animation)  */
#  define LV_LIST_DEF_ANIM_TIME  100
#endif/*Line meter (dependencies: *;)*/
#define LV_USE_LMETER   1/*Message box (dependencies: lv_rect, lv_btnm, lv_label)*/
#define LV_USE_MBOX     1/*Page (dependencies: lv_cont)*/
#define LV_USE_PAGE     1
#if LV_USE_PAGE != 0
/*Focus default animation time [ms] (0: no animation)*/
#  define LV_PAGE_DEF_ANIM_TIME     400
#endif/*Preload (dependencies: lv_arc, lv_anim)*/
#define LV_USE_PRELOAD      1
#if LV_USE_PRELOAD != 0
#  define LV_PRELOAD_DEF_ARC_LENGTH   60      /*[deg]*/
#  define LV_PRELOAD_DEF_SPIN_TIME    1000    /*[ms]*/
#  define LV_PRELOAD_DEF_ANIM         LV_PRELOAD_TYPE_SPINNING_ARC
#endif/*Roller (dependencies: lv_ddlist)*/
#define LV_USE_ROLLER    1
#if LV_USE_ROLLER != 0
/*Focus animation time [ms] (0: no animation)*/
#  define LV_ROLLER_DEF_ANIM_TIME     200/*Number of extra "pages" when the roller is infinite*/
#  define LV_ROLLER_INF_PAGES         7
#endif/*Slider (dependencies: lv_bar)*/
#define LV_USE_SLIDER    1/*Spinbox (dependencies: lv_ta)*/
#define LV_USE_SPINBOX       1/*Switch (dependencies: lv_slider)*/
#define LV_USE_SW       1/*Text area (dependencies: lv_label, lv_page)*/
#define LV_USE_TA       1
#if LV_USE_TA != 0
#  define LV_TA_DEF_CURSOR_BLINK_TIME 400     /*ms*/
#  define LV_TA_DEF_PWD_SHOW_TIME     1500    /*ms*/
#endif/*Table (dependencies: lv_label)*/
#define LV_USE_TABLE    1
#if LV_USE_TABLE
#  define LV_TABLE_COL_MAX    12
#endif/*Tab (dependencies: lv_page, lv_btnm)*/
#define LV_USE_TABVIEW      1
#  if LV_USE_TABVIEW != 0
/*Time of slide animation [ms] (0: no animation)*/
#  define LV_TABVIEW_DEF_ANIM_TIME    300
#endif/*Tileview (dependencies: lv_page) */
#define LV_USE_TILEVIEW     1
#if LV_USE_TILEVIEW
/*Time of slide animation [ms] (0: no animation)*/
#  define LV_TILEVIEW_DEF_ANIM_TIME   300
#endif/*Window (dependencies: lv_cont, lv_btn, lv_label, lv_img, lv_page)*/
#define LV_USE_WIN      1/*==================* Non-user section*==================*/#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS)    /* Disable warnings for Visual Studio*/
#  define _CRT_SECURE_NO_WARNINGS
#endif/*--END OF LV_CONF_H--*//*Be sure every define has a default value*/
#include "lvgl/src/lv_conf_checker.h"//赋值,赋默认的值#endif /*LV_CONF_H*/#endif /*End of "Content enable"*/

lvgl lv_conf.h文件详解相关推荐

  1. UCOSII 移植文件详解——笔记

    1.滴答定时器 SysTick 滴答定时器是一个24位的倒计数定时器,当计数到0时,将从RELOAD寄存器中自动重装载定时器初值,只要不关闭SysTick使能位,就将永久不息. SysTick的最大使 ...

  2. 【C++】C++中的头文件(.h)—详解(2)

    接上... [fishing-pan:https://blog.csdn.net/u013921430转载请注明出处] 头文件中写些什么 在上篇博客中写到头文件本身不参与编译,但是它们被包含到源文件中 ...

  3. 【C++】C++中的头文件(.h)—详解(1)

    [fishing-pan:https://blog.csdn.net/u013921430转载请注明出处] 前言 之前写过一篇<C++中头文件的使用>,那篇文章主要讲述C++中头文件的使用 ...

  4. 附005.Docker Compose文件详解

    一 Docker Compose文件简介 compose文件使用yml格式,主要分为了四个区域: version:用于指定当前docker-compose.yml语法遵循哪个版本 services:服 ...

  5. oracle数据库pfile文件,Oracle pfile/spfile参数文件详解

    Oracle pfile/spfile参数文件详解 在创建数据库时,SPFile文件中部分必须考虑的参数值: 基本规则 a.在SPFile文件中,所有参数都是可选的,也就是说只需要在初始化参数文件中列 ...

  6. 生成jni的android.mk,Android Studio 3.5版本JNI生成SO文件详解

    学习在于记录,把自己不懂得容易忘记得记录下,才是最好得选择. 废话不多说,想要在Android开发中嵌入c/c++代码,直接开始如下步骤 1.创建需要调用的Java类 在你某个指定的包下创建如下类pa ...

  7. red hat linux yum,Red Hat Enterprise Linux(RHEL)中yum的repo文件详解

    Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载 ...

  8. 【转载】CodeWarrior IDE使用tips之prm链接文件详解(自定义存储器分区以及自定义RAM数据初始化与在RAM中运行函数)...

    CodeWarrior IDE使用tips之prm链接文件详解(自定义存储器分区以及自定义RAM数据初始化与在RAM中运行函数) 2017-08-19 胡恩伟 汽车电子expert成长之路 内容提要 ...

  9. Qt pro 文件详解

     Qt pro 文件详解 1. TEMPLATE  变量TEMPLATE描述了为建立目标文件而采用何种模板,即生成何种形式的Makefile文件.Qmake  工具定义了5种模板:   a. 应用 ...

最新文章

  1. SAP UI5 sap.ui.vk 命名空间内的控件介绍
  2. 防止缓存爆炸的快速提示
  3. python sns绘制回归线_Python数分实战:员工流失情况预测
  4. 深度残差收缩网络:(二)整体思路
  5. Python nltk包
  6. android浏览器插件开发,【转】Chrome扩展开发自己的浏览器插件
  7. HDU 6096 树套树
  8. excel服务器模板修改,勤哲Excel服务器设计查询模板
  9. python新建代码编辑文档快捷键大全_Python IDE PyCharm的快捷键大全
  10. b5纸尺寸_【收藏款】平面设计标准尺寸规范总结
  11. php 方差函数,PHP应用:PHP基于方差和标准差计算学生成绩的稳定性示例
  12. 福利:go语言开发的sock5代理服务器
  13. 人工智能——国家人工智能战略行动抓手
  14. 垃圾分类小程序,识别和站点查询,答题,用户后台管理集一体的小程序
  15. 没有执行此操作所需的足够可用空间。_一文详解 MySQL 高可用之 DRBD | 原力计划...
  16. 20200305沈剑阿里云MVP分享笔记
  17. 2018年回顾和收获
  18. 《百度apollo》规划一
  19. AlloyTeam:致我们终将组件化的 Web (多图)
  20. 【UEFI实战】HII之常用函数

热门文章

  1. 如何修改PDF,怎么把一个PDF拆分成多个
  2. 深入研究simulink建模与仿真之信号线上的几种不同的图标
  3. 转载 总结了一下十几年来的经验教训
  4. zynq petalinux编译系统启动文件实战应用
  5. html做坦克大战的效果,HTML5实现坦克大战(一)
  6. HDOJ(HDU) 1862 EXCEL排序(类对象的快排)
  7. RC电路的充放过程C语言实现,一种快速放电的RC充放电电路的制作方法
  8. HTML编辑器选择什么,HTML编辑器有哪些?3款常用的编辑器推荐
  9. 多周期CPU设计(verilog)
  10. 编程创业赚钱-教你怎样开发热门配音程序