历史上的今天
今天是:2024年11月02日(星期六)
2021年11月02日 | stm32实用篇3: 字符显示字库生成
2021-11-02 来源:eefocus
在使用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 宋体 的字库:
同样的,看一下生成的字库数据:
同理,根据生成的数据,尝试打印“顿号”:
至此,字库数据生成完毕。
史海拾趣
|
要求:按下开关灯亮,断开开关灯灭。 我用switch语句,按下开关灯亮了,可断开开关灯就是不灭,我改了n次了它还是不灭,我已经拿它没办法了,求哥哥们给个C语言的程序,谢谢! 比如:按k1,led1亮;按k2,led2与led3亮;按 ...… 查看全部问答> |
|
I2C_IOControl 传一个数组出来,老不成功,郁闷死了 BOOL I2C_IOControl( DWORD context, DWORD code, BYTE *pInBuffer, DWORD inSize, BYTE *pOutBuffer, DWORD outSize, DWORD *pOutSize ) 里面定义了一个BYTE *str;然后给他空间,也 ...… 查看全部问答> |
|
有没有哪位高人用过OK2440开发板?小弟我刚开始学习,遇到很奇怪的问题,就是使用DNW的USB下载内核文件nk.bin或者nk.nb0时,一直提示checksum error!MEM:1502 DN:200 Invalid BIN file signature!24,d0,24,6c,af,d0,24 &nbs ...… 查看全部问答> |
|
CE5下怎么基于现有BSP复制出一个新的BSP(名称不同),并且能够在新BSP上建立新的CE工程,要些改什么地方? CE5下怎么基于现有BSP复制出一个新的BSP(名称不同),并且能够在新BSP上建立新的CE工程,要些改什么地方?… 查看全部问答> |
|
访问允许异常(section permission fault) Hi,Dear all, 我在使用Hms30c7202过程中遇到一个难题,我使用的内核是2.6.13.4,大多数能够正常启动运行,个别出现不能启动情况。打印DEBUG信息,非正常设备启动失败,打印: Kernel panic - not syncing: No init found. Try passi ...… 查看全部问答> |
|
从网上找了个sqlite3.exe,就这一个文件, 直接双击,就是sqlite> 在网上查了一下,建库有好多的方法,什么$,sqlite3 xxx.db等, 执行就报sql error。 直接create table .....OK。 insert .......OK。 .exit以后再打开sqlite3.exe时,刚才建 ...… 查看全部问答> |
|
我在PB4.2下定制WINCE,build时出现1个错误,系统提示参考WINCE420目录下的build.err文件,文件的内容如下: Starting sysgen phase for project ( common ) Found localized resources for Languages ( 0404 0407 040C 0410 0411 0412 0413 041 ...… 查看全部问答> |










