KAMYZHAO 发表于 2024-1-19 10:36 解决了就好,感谢告知 |
阿里兄 发表于 2024-1-18 15:59 我试了用内部大数组,可以正常显示。 然后我之前追踪了一下代码发现在这里出现异常: ---------------------lv_draw_letter函数--------------------------------- int32_t pos_x = pos_p->x + g.ofs_x; int32_t pos_y = pos_p->y + (font_p->line_height - font_p->base_line) - g.box_h - g.ofs_y; /*If the letter is completely out of mask don't draw it */ if(pos_x + g.box_w < clip_area->x1 || pos_x > clip_area->x2 || pos_y + g.box_h < clip_area->y1 || pos_y > clip_area->y2) { #include "stdio.h" printf("OOOOOOOOOOOOOO!\r\n");//这里跳出了!!!!!!! return; } const uint8_t * map_p = lv_font_get_glyph_bitmap(font_p, letter); if(map_p == NULL) { LV_LOG_WARN("lv_draw_letter: character's bitmap not found"); return; } ----------------------------------- 是上面函数内跳出导致没有往下执行lv_font_get_glyph_bitmap ,所以就没显示出来.这就无语了!!! |
KAMYZHAO 发表于 2024-1-18 14:32 BIN转成C数组试试吧,或是换内部大数组,文字少点,内部大数组和BIN格式没有区别了。 |
本帖最后由 KAMYZHAO 于 2024-1-18 15:54 编辑 阿里兄 发表于 2024-1-18 14:22 我重新看了下,是有做读取操作,但是只操作了__user_font_get_glyph_dsc函数,没有执行__user_font_get_bitmap函数,请问这是什么原因呢,我读了下该字符的bin数据,是没问题(跟生成C数组的数据一致)。 |
KAMYZHAO 发表于 2024-1-18 14:20 这里可能是你的BIN存到FLASH出错,或是读到的数据出错。 |
阿里兄 发表于 2024-1-18 11:41 调试追踪发现,函数碰到这个字符压根就没读直接越过去读下一个字符去了,这是编码的问题吗 |
阿里兄 发表于 2024-1-18 11:41 一般是什么原因呢,第一张图三个地方是固定的字符(y)呢 |
C数组的正常,那这里很可能是你的读取不正确了。 |
GMT+8, 2024-11-23 12:17 , Processed in 0.079607 second(s), 8 queries , File On.
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】