笔者用的开发环境是正点原子的stm32 mini 版本,其中需要用到lcd显示中文,正点原子的例程上的字体显示得太小了,于是自己根据例程来写一个可以显示大点字体的函数。
1、首先打开取模软件pctolcd2002,选好字体并做相应设置,笔者想显示32 x 32 的字体,于是设置汉字点阵宽高都为32,字宽和字高也是32,如下图32
2、设置输出,如图
接着输入要显示的字体,并点击生成字模
3、接着对生成的字模做处理,如下图:
这是软件生成的原字模:
处理后的字模
处理其实就是将它用{}把一个字的字模单独括起来,然后将字模在工程文件中定义
因为32X32的每个字占128个字节,所以数组后面是128。
4、定义使用32x32字体的函数
//x,y屏幕的位置
//index,字所在数组的位置,在本例中“你”就是0,“好”为1
//font_color 字的颜色
//back_color 背景颜色void LCD_ShowTitle(u16 x,u16 y,u8 index,u16 font_color,u16 back_color)
{ u8 temp,t,t1,size = 32;u16 y0=y;u8 csize= (size*size - 64)/8;//得到字体一个字符对应点阵集所占的字节数for(t=0;t<csize;t++){ temp=a[index][t]; for(t1=0;t1<8;t1++){if(temp&0x80)LCD_Fast_DrawPoint(x,y,font_color);else LCD_Fast_DrawPoint(x,y,back_color);temp<<=1;y++;if((y-y0)==size){y=y0; x++;break;}} }
}
5、调用
LCD_ShowTitle(20,20,0,0xFFFF,0x0000);
如需要显示其他字体大小的,直接修改字模然后调用此函数,修改 函数里的size的值即可。
ps:当字体设置过大时函数可能会失效,目前笔者显示48x48的字体时就失效了,如有读者发现问题敬请指正
字符取模软件的压缩包,解压就可用-嵌入式文档类资源-CSDN下载用于stm32的lcd显示屏显示中文字体取模更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/eachanm/84261946