【平头哥RVB2601创意应用开发】使用字模工具的方法
本帖最后由 tobot 于 2022-5-10 23:01 编辑<p style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体"> 之前(</span>https://bbs.eeworld.com.cn/thread-1200961-1-1.html<span style="font-family:宋体">)已经介绍过如何在平头哥</span>RVB2601<span style="font-family:宋体">修改配置,让l</span>abel<span style="font-family:宋体">可以调用</span>lv_font_simsun_16_cjk<span style="font-family:宋体">文件显示中文,但lvgl的中文支持真的不咋样,为了在平头哥</span><span style="overflow-wrap:break-word"><span style="font-variant-ligatures:normal"><span style="text-decoration-style:initial"><span style="text-decoration-color:initial"><span style="overflow-wrap:break-word">RVB2601</span></span></span></span></span><span style="font-family:宋体">显示中文(当然也包括特殊字符),专门做了一个把文字转成数组头文件的小软件(</span>https://bbs.eeworld.com.cn/thread-1200379-1-1.html<span style="font-family:宋体">),当然转换出来的数组只能用</span>“<span style="font-family:宋体">写文字</span>”<span style="font-family:宋体">的方式画在屏幕上,无疑增加了开发工作量。</span></span></span></p>
<p style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体">为了进一步偷懒,我为此做了一个字库工具,界面如下:</span></span></span> <span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体">功能简单介绍如下:</span></span></span> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<ol><br />
<li style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体">考虑到配合平头哥</span>RVB2601<span style="font-family:宋体">,只有单色屏,而且不支持灰度,所以字库中的</span>bpp=1<span style="font-family:宋体">(类似自带库</span>lv_font_unscii_8<span style="font-family:宋体">和</span>lv_font_unscii_16<span style="font-family:宋体">),可以将图片转换成文字(尝试过自动阈值,发现效果不好,开放出来给大家手工改动)。</span></span></span></li>
<li><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体">可以设置文件中的文字高度,目前是定义了</span>8<span style="font-family:宋体">、</span>16<span style="font-family:宋体">、</span>18<span style="font-family:宋体">、</span>22<span style="font-family:宋体">、</span>24<span style="font-family:宋体">、</span>28<span style="font-family:宋体">、</span>32<span style="font-family:宋体">、</span>36<span style="font-family:宋体">、</span>40<span style="font-family:宋体">、</span>48<span style="font-family:宋体">几种,但实际上还可以自由扩充(请自己改源代码)。</span></span></span></li>
<li><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体">可以使用单一符号显示不限制宽度的文字(多个文字也行,软件是不知道的),考虑到平头哥</span>RVB2601<span style="font-family:宋体">屏幕只有</span>128<span style="font-family:宋体">宽度,所以预览显示是到</span>128<span style="font-family:宋体">。</span></span></span></li>
<li><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体">可以使用</span>unicode<span style="font-family:宋体">可以识别的各种符号(比如日文)等,支持多国文字的混用。</span></span></span></li>
<li><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体">支持读取</span>lvgl<span style="font-family:宋体">自带字体文件并进行扩充(当然是文字高度得相同,且</span>bpp=1<span style="font-family:宋体">)。</span></span></span></li>
<li><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体">可以调用自建文件并反复修改。</span></span></span></li>
<li><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体">完全开源和免费使用,当然如果有赞助更好。</span></span></span></li>
<li><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体">生成的</span>.c<span style="font-family:宋体">文件完全兼容平头哥</span>RVB2601<span style="font-family:宋体">。</span></span></span></li>
</ol>
<p style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体"> 应用软件使用没太多好说的,纯傻瓜界面,上手就能用。</span></span></span></p>
<p style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体"> 再介绍一下如果使用上述工具生成了一个字模库以后如何加入</span>lvgl<span style="font-family:宋体">吧,比如使用</span>“<span style="font-family:宋体">保存字模库</span>”<span style="font-family:宋体">按钮存下了一个名为</span>lv_user_test.c<span style="font-family:宋体">的字体文件。 </span></span></span></p>
<ol>
<li style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体">首先把这个</span>lv_user_test.c<span style="font-family:宋体">字体文件拷贝到</span>lvgl\v7.4.3\src\lv_font<span style="font-family:宋体">目录中</span></span></span></li>
<li><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体">需要修改</span>lvgl\v7.4.3\src\lv_font\font.h<span style="font-family:宋体">文件,添加</span></span></span><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif">LV_FONT_DECLARE(lv_user_test)</span></span></li>
</ol>
<p> </p>
<ol start="3">
<li><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体">在</span>lvgl\v7.4.3\src\lv_conf_kconfig.h<span style="font-family:宋体">中添加</span></span></span><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif">#define CONFIG_LV_THEME_DEFAULT_FONT_NORMAL &lv_user_test</span></span></li>
</ol>
<ol start="4">
<li><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体">在</span>lvgl\v7.4.3\lv_conf.h<span style="font-family:宋体">中修改</span></span></span><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif">#define LV_THEME_DEFAULT_FONT_NORMAL &lv_user_test</span></span></li>
</ol>
<p> </p>
<p> </p>
<p style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体"> 以上四步完成后,就能够使用新做的字体了,调用方法和自带字体没有任何区别。</span></span></span></p>
<p> </p>
<p> </p>
<p> 软件下载地址:https://download.eeworld.com.cn/detail/tobot/623543</p>
<p> </p>
<p> </p>
<p style="text-align:justify"><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体"> 附上开发思路和未来展望:</span></span></span></p>
<p> </p>
<p> </p>
<ol>
<li><span style="font-size:10.5pt"><span style="font-family: 宋体;">因为</span><font face="Calibri, sans-serif">lvgl</font><span style="font-family: 宋体;">中的汉字不全,考虑过把</span><font face="Calibri, sans-serif">windows</font><span style="font-family: 宋体;">下的中文字体转换成</span><font face="Calibri, sans-serif">.c</font><span style="font-family: 宋体;">文件使用,发现字体文件太大,平头哥</span><font face="Calibri, sans-serif">RVB2601</font><span style="font-family: 宋体;">内存太小,放入太多文字真的不实用,不如做成定制化的,比如字母</span><font face="Calibri, sans-serif">o</font><span style="font-family: 宋体;">表示</span><font face="Calibri, sans-serif">“</font><font face="宋体">我很感兴趣,多说一点</font><font face="Calibri, sans-serif">”</font><span style="font-family: 宋体;">,</span><font face="Calibri, sans-serif">汉字“滚”</font><span style="font-family: 宋体;">表示</span><font face="Calibri, sans-serif">“</font><span style="font-family: 宋体;">我在开会,晚点回话</span><font face="Calibri, sans-serif">”</font><span style="font-family: 宋体;">,这种便签式的文字更加实用。</span></span></li>
<li><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif">Lvgl<span style="font-family:宋体">中自带的</span>bpp=4<span style="font-family:宋体">的文件理论上与</span>bpp=1<span style="font-family:宋体">基本类似,但转换出来效果不太好看,在这版中,我直接禁用了,后续可以再调一调,不然现在可以转的</span>lvgl<span style="font-family:宋体">自带字体实在不多。</span></span></span></li>
<li><span style="font-size:10.5pt"><span style="font-family:Calibri,sans-serif"><span style="font-family:宋体">多字符的组合处理不是很好,比如平方(当然这是</span>lvgl<span style="font-family:宋体">的锅,我不接),后续可以考虑这方面的优化。</span></span></span></li>
</ol>
<p> </p>
<p> </p>
LVGL研究得很深呀,可以多分享一些这方面的知识到这里,谢谢! <p>厉害<img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan88.gif" width="59" /></p>
<p>感谢提供</p>
<p> </p>
<p>目前下面链接貌似有问题,打不开。</p>
<p>软件下载地址:https://download.eeworld.com.cn/detail/tobot/623543</p>
sipower 发表于 2022-5-11 08:40
厉害
感谢提供
目前下面链接貌似有问题,打不开。
软件下载地址:http://download.eewo ...
<p>应该是没审核呢,已经告诉同事去审核了,稍等等</p>
页:
[1]