littlevgl 6.0 外部spiflash 显示中文

LittlevGL中文显示方案

I.简介

littlevgl 6.0 显示中文,从查找的资料来看,一种利用内部flash,通过官方工具或网友制作的工具,生成.C文件放到内部编译,在声明下,就可以显示中文。这种方法只是用少量字体,毕竟这种做法很占用内部flash。

另外两种是放到SD卡或外部spiflash。放到SD卡的网上的实例大多是基于7.0的,暂时没有去实现,我这里实现的是从SD卡拷贝到spiflash中(利用工具生成.bin 和.c )。还有看到网上有从SD卡上电拷贝到外部SDRAM中,用法和第一种相似,这种做法从理论上来看速度应该更快。

II实现过程

I. 第一种实现方式
使用工具生成,注意选择XBF字体,内部大数组,点击保存生成china_test的文件,添加工程中,注意声明下,就可以使用了。
在这里插入图片描述代码如下:

#include "lvgl/lvgl.h"

LV_FONT_DECLARE(china_test);

void lv_chinest_test(void)
{
   
   
	static lv_style_t style;
	lv_obj_t * label;
	
	label =lv_label_create( lv_scr_act(), NULL);
	lv_obj_set_size( label, 100, 100);
	lv_style_copy(&style, &lv_style_plain);
	style.body.main_color = LV_COLOR_BLACK;
	style.body.grad_color = LV_COLOR_BLACK;
	style.text.font = &china_test;
	lv_obj_set_style(label, &style);
	lv_label_set_text(label, "中文测试");
	printf("1234");
}

显示结果如下
在这里插入图片描述
II. 字库放到spiflash显示汉字
首先制作字库文件,可以添加常用汉字,字号和字体样式自主选择 ,如下图,加入常用汉字
在这里插入图片描述会生成HZ.bin 和 HZ.c 两个文件,把HZ.bin 放大SD卡,一定要记得路径例如“/HZ.bin”,利用文件系统打开这个文件,让后拷贝到spiflash 某个固定地址,一定要记得起始地址(这个非常重要),我是利用正点原子汉字显示实验历程修改的,主要修改你要写入的文件(字库)路径,其他不做修改。这里只做测试,替换掉UNIGBK_PATH路径
//字库存放在磁盘中的路径
u8const GBK24_PATH="/SYSTEM/FONT/GBK24.FON"; //GBK24的存放位置
u8
const GBK16_PATH="/SYSTEM/FONT/GBK16.FON"; //GBK16的存放位置
u8const GBK12_PATH="/SYSTEM/FONT/GBK12.FON"; //GBK12的存放位置
//u8
const UNIGBK_PATH="/SYSTEM/FONT/UNIGBK.BIN"; //UNIGBK.BIN的存放位置
u8const UNIGBK_PATH="/HZ.bin";
正点原子默认代码按KEY0自动升级上述四个字库,有个函数可以单独升级某个字库,这里没做测试,直接修改u8 update_font(u16 x,u16 y,u8 size,u8
src),屏蔽掉其他三个文件的读写即可。
修改代码如下:添加两处#if 0 #end注释其他即可

	//先查找文件是否正常 
	strcpy((char*)pname,(char*)src);	//copy src内容到pname
	strcat((char*)pname,(char*)UNIGBK_PATH)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值