你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

littlevgl(LVGL v7.0) 外部SD卡存放中文字库并显示

[复制链接]
lebment 发布时间:2020-7-6 21:58
建议论坛支持一下markdown。
后面STM32创客赛,我会放出2-3帧的人脸检测,非源码,比赛完了再放!!!

# LVGL SD卡字库显示中文
## Step1---字库文件准备
* lvglFontTool v0.3 由阿里大佬开发,请自行搜索下载
* 不赘述如何使用该工具,请将生成的bin文件和C代码分别放入SD卡和工程
## CubeMX生成工程
* 工程包含LCD驱动、SD卡驱动和其它需要的驱动
* 修改lvglFontTool的代码,如下:
---
    static uint8_t *__user_font_getdata(int offset, int size){
        //如字模保存在SPI FLASH, SPIFLASH_Read(__g_font_buf,offset,size);
        //如字模已加载到SDRAM,直接返回偏移地址即可如:return (uint8_t*)(sdram_fontddr+offset);
    uint32_t br;
    if( f_open(&SDFile, (const TCHAR*)"0:/system/font/lv_font_msyahei_20_AA4_GB2312.bin", FA_READ) != FR_OK )
    {
        debug_print("lv_font_msyahei_20_AA4_GB2312.bin open failed\r\n");
    }
    else
    {
        if( f_lseek(&SDFile, (FSIZE_t)offset) != FR_OK )
        {
        debug_print("lv_font_msyahei_20_AA4_GB2312.bin lseek failed\r\n");
        }
        if( f_read(&SDFile, __g_font_buf, (UINT)size, (UINT*)&br) != FR_OK )
        {
        debug_print("lv_font_msyahei_20_AA4_GB2312.bin lseek failed\r\n");
        }
        f_close(&SDFile);
    }
    return __g_font_buf;
    }
* 修改 lv_conf.h
#define LV_FONT_CUSTOM_DECLARE  LV_FONT_DECLARE(lv_font_msyahei_20_AA1_GB2312) \
                                LV_FONT_DECLARE(lv_font_msyahei_14_AA4_GB2312) \

## 使用字库显示
* 7.0之后的lvgl style修改了,不能像以前那样修改字库,特意分享这个,花了点时间。例子如下:
---
    char cn_str[] = "STM32中文论坛 \uF004 LVGL";
    static lv_style_t style1;
    lv_style_init(&style1);
    lv_style_set_text_font(&style, LV_STATE_DEFAULT, &lv_font_msyahei_20_AA1_GB2312);
    lv_obj_t * label = lv_label_create(lv_scr_act(), NULL);
    lv_obj_add_style(label, LV_LABEL_PART_MAIN, &style2);
    lv_label_set_text(label, cn_str);
    lv_obj_set_x(label, 0);
    lv_obj_set_y(label, 0);
* 显示结果:

    <img src="./img1.jpg" width = "300" height = "200" alt="图片名称" align=center />
    <img src="./img2.jpg" width = "300" height = "200" alt="图片名称" align=center />
img2.jpg img1.jpg

### 刷新速度和下一步优化
* 本人测试的平台Nucleo L4R5,三秒刷出来,取决于SD卡速度。
* 下一步加入使用QSPI falsh存储中文字库,还是bin文件,测试所用的bin文件约为2M。


收藏 评论0 发布时间:2020-7-6 21:58

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版