里飞网

 找回密码
 立即注册
查看: 4974|回复: 6
打印 上一主题 下一主题

求助!LVGL8.3 之 模拟器visual studio使用外部中文字体显示不了

[复制链接]

1

主题

5

帖子

27

积分

新手上路

Rank: 1

积分
27
跳转到指定楼层
楼主
发表于 2023-11-15 17:55:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码:
    LV_FONT_DECLARE(lv_font_SourceHanSansSCVF_16);//引入字库
    lv_obj_t* zh_label = lv_label_create(lv_scr_act());//获取默认屏幕
    lv_obj_set_style_text_font(zh_label, &lv_font_SourceHanSansSCVF_16, LV_STATE_DEFAULT);// 设置风格的字体
     lv_label_set_text(zh_label, "你好,这是思源黑体!");//显示文字
    lv_obj_align(zh_label, LV_ALIGN_TOP_MID, 0, 0);

死在了第三行代码
模拟器报错:
static bool __user_font_get_glyph_dsc(const lv_font_t * font, lv_font_glyph_dsc_t * dsc_out, uint32_t unicode_letter, uint32_t unicode_letter_next) {
    if( unicode_letter>__g_xbf_hd.max || unicode_letter<__g_xbf_hd.min ) {
        return NULL;
    }
    uint32_t unicode_offset = sizeof(x_header_t)+(unicode_letter-__g_xbf_hd.min)*4;
    uint32_t *p_pos = (uint32_t *)__user_font_getdata(unicode_offset, 4);
    if( p_pos[0] != 0 ) {
        glyph_dsc_t * gdsc = (glyph_dsc_t*)__user_font_getdata(p_pos[0], sizeof(glyph_dsc_t));
        dsc_out->adv_w = gdsc->adv_w;
        dsc_out->box_h = gdsc->box_h;
        dsc_out->box_w = gdsc->box_w;
        dsc_out->ofs_x = gdsc->ofs_x;
        dsc_out->ofs_y = gdsc->ofs_y;
        dsc_out->bpp   = __g_xbf_hd.bpp;
        return true;
    }
    return false;

报错的位置是生成的.c文件


回复

使用道具 举报

1

主题

5

帖子

27

积分

新手上路

Rank: 1

积分
27
沙发
 楼主| 发表于 2023-11-15 17:59:53 | 只看该作者
错误提示是:
引发了异常: 读取访问权限冲突。
p_pos 是 nullptr。
回复

使用道具 举报

45

主题

311

帖子

2814

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2814
板凳
发表于 2023-11-15 18:49:27 | 只看该作者
虾兵虾酱 发表于 2023-11-15 17:59
错误提示是:
引发了异常: 读取访问权限冲突。
p_pos 是 nullptr。

或是你这里换一个判断方法
  1. if( p_pos!=NULL ) {
  2.         glyph_dsc_t * gdsc = (glyph_dsc_t*)__user_font_getdata(p_pos[0], sizeof(glyph_dsc_t));
  3.         dsc_out->adv_w = gdsc->adv_w;
  4.         dsc_out->box_h = gdsc->box_h;
  5.         dsc_out->box_w = gdsc->box_w;
  6.         dsc_out->ofs_x = gdsc->ofs_x;
  7.         dsc_out->ofs_y = gdsc->ofs_y;
  8.         dsc_out->bpp   = __g_xbf_hd.bpp;
  9.         return true;
  10.     }
复制代码
回复

使用道具 举报

1

主题

5

帖子

27

积分

新手上路

Rank: 1

积分
27
地板
 楼主| 发表于 2023-11-15 19:49:50 | 只看该作者
本帖最后由 虾兵虾酱 于 2023-11-15 20:02 编辑
阿里兄 发表于 2023-11-15 18:49
或是你这里换一个判断方法

换了判断方法,可以编过。但是文字是白色的框,文字还是不显示!!!
回复

使用道具 举报

1

主题

5

帖子

27

积分

新手上路

Rank: 1

积分
27
5#
 楼主| 发表于 2023-11-15 20:29:41 | 只看该作者
选择第二种”XBF字体,内部大数组“,可以直接显示文字。 第三种带bin文件为啥不行,目前不知道
回复

使用道具 举报

45

主题

311

帖子

2814

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2814
6#
发表于 2023-11-17 08:35:59 | 只看该作者
虾兵虾酱 发表于 2023-11-15 20:29
选择第二种”XBF字体,内部大数组“,可以直接显示文字。 第三种带bin文件为啥不行,目前不知道 ...

这很明显是你驱动没写好。
回复

使用道具 举报

1

主题

5

帖子

27

积分

新手上路

Rank: 1

积分
27
7#
 楼主| 发表于 2023-11-17 14:35:25 | 只看该作者
阿里兄 发表于 2023-11-17 08:35
这很明显是你驱动没写好。

弄好了,lvgl的文件系统没弄好
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|里飞网  

GMT+8, 2024-11-23 08:18 , Processed in 0.091774 second(s), 4 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表