stm32实用篇3: 字符显示字库生成

在使用stm32显示文本时,首先要使用字模软件生成字库,如下:

这里,使用的是Consolas字体,点阵大小为16*16(汉字),此时英文字体的大小为8*16,宽度为汉字字体的一半,然后设置选项参数(包括阴码、逐行扫描、十六进制等),具体配置如下:

然后就可以生成字库,首先生成ASCII字库:

会生成两个文件,即字库 + 索引:

       因为ASCII编码表的0 ~ 31是不可见字符,从32(空格)33(感叹号!)...开始才是文本字符,因此为了节省空间,直接删去前面多余不用的不可见字符,操作如下:

删除后:

然后利用PCtoLCD取模软件重新加载txt文件生成字库:

       利用WinHex软件打开字库,来看一下数据,如果生成正确的话,第一个16字节(英文为16,中文为32)应该为空格,第二个为感叹号:

直接验证一下,这个生成的字符图案的正确性:

/* 生成的字模数据 */
uint8_t test_module[] = {
	0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,
	0x18,0x08,0x00,0X08,0X18,0X00,0X00,0X00
};


void Display_char_test(void)
{
	uint8_t i = 0, j = 0, k = 0;
	
	/* 字模数据有16行 */
	for (i = 0; i < 16; i++)
	{
		/* 每行16列,2字节 */
		for (j = 0; j < 1; j++)
		{
			/* 每个字节8位 */
			for (k = 0; k < 8; k++)
			{
				/* 对每个数据字节从高位到低位进行遍历 */
				if ((test_module[i * 1 + j] & (0X80 >> (k))) != 0)
				{
					printf("*");
				}
				else
				{
					printf(" ");
				}
			}
		}
		printf("\n");
	}
}

串口打印结果如下:

这和取模软件的图案一致:

接下来,生成中文GB2312 宋体 的字库:

同样的,看一下生成的字库数据:

同理,根据生成的数据,尝试打印“顿号”:

至此,字库数据生成完毕。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值