在官方提供的BSP例程中,字符显示本身就有分别显示8、12、16、20和24点阵ASCII字符的函数,所以我就尝试利用官方现成的函数来显示有限的汉字。首先找到其字库文件,这些字库文件不是通常以.h标识的头文件,而是以.c为后缀的C文件,同样是通过include包含进来。分析了一个字符,了解到其结构是横向高位在前、从左到右、从上到下的结构,于是便在字模生成软件中生成了24*24点阵的几个汉字的字模。如何在程序中调用这几个汉字字模呢?思考后决定用最简单的办法,即用生成的三个“探索板”字模替换原字库末尾不常用的“{|}”三个字符:
( ^8 [5 P% A5 p6 e+ W- _% k 然后在界面显示中添加代码,如下图: , W' F1 K D/ Z2 L) }- O$ U; E
) R- X/ [$ Z) B0 ~5 b2 Y! r X7 f 编译下载后发现显示效果不佳,汉字的后几列没有显示出来。仔细一看说明才知道其24点阵实际上只显示24*17点阵,后面的7列不显示(因为ASCII码显示宽高相同的话字型不美观)。( h' P/ x$ k/ z
考虑到若修改显示函数的话太麻烦,只能修改字模才更方便些,于是只好回到字模生成软件里来修改字模:
& Q9 ]' i5 u+ |. E6 M) t7 j 字模修改完成后再编译下载,勉强可以显示出汉字了:
6 K& m" y8 s1 m/ F+ ^6 m: _ 这个试验没有太多的实用价值,因为要增加显示的汉字就要对应减少原来的ASCII字符,所以显示汉字的数量杜极其有限。另外字模生成软件中没有24*17点阵的模板,全靠手工修改字模效率很低,不实用。下一步再添加对应的字符显示函数试试看。9 b- I6 c3 ~; s% D4 X1 t4 {) ~8 B$ T - A) o; K' W1 [/ H8 ^, z2 T( [; b& V0 Q |
NUCLEO-H5E5ZJ 移植 LVGL
NUCLEO-H5E5ZJ 移植 ST7735 SPI LCD 驱动
NUCLEO-H5E5ZJ 以太网(Ethernet)移植记录
【STM32H5 评测】1、移植记录(LED / Shell)
STM32C542RC开发板实现长短按键识别功能
STM32C542RC开发板PWM呼吸灯实验
STM32C542RC开发板的串口不定长数据接收实验
《STM32CubeMX2 实战课程》学习笔记——STM32C562RE开发测试
STM32C542RC开发板的串口DMA发送及接收实验
终于完成了STM32C542RC开发板的串口发送实验
微信公众号
手机版