在官方提供的BSP例程中,字符显示本身就有分别显示8、12、16、20和24点阵ASCII字符的函数,所以我就尝试利用官方现成的函数来显示有限的汉字。首先找到其字库文件,这些字库文件不是通常以.h标识的头文件,而是以.c为后缀的C文件,同样是通过include包含进来。分析了一个字符,了解到其结构是横向高位在前、从左到右、从上到下的结构,于是便在字模生成软件中生成了24*24点阵的几个汉字的字模。如何在程序中调用这几个汉字字模呢?思考后决定用最简单的办法,即用生成的三个“探索板”字模替换原字库末尾不常用的“{|}”三个字符:
然后在界面显示中添加代码,如下图:
编译下载后发现显示效果不佳,汉字的后几列没有显示出来。仔细一看说明才知道其24点阵实际上只显示24*17点阵,后面的7列不显示(因为ASCII码显示宽高相同的话字型不美观)。
考虑到若修改显示函数的话太麻烦,只能修改字模才更方便些,于是只好回到字模生成软件里来修改字模:
字模修改完成后再编译下载,勉强可以显示出汉字了:
这个试验没有太多的实用价值,因为要增加显示的汉字就要对应减少原来的ASCII字符,所以显示汉字的数量杜极其有限。另外字模生成软件中没有24*17点阵的模板,全靠手工修改字模效率很低,不实用。下一步再添加对应的字符显示函数试试看。 |
【福利三:逢7发帖赢大礼】串口空闲中断+DMA接收实现串口语音模块控制
【福利三:逢7发帖赢大礼】lv_timer和BME680实现温度、湿度、气压数据读取
STM32L562DK探索板——BSP项目的移植
【福利三:逢7发帖赢大礼】成功利用STM32H743VI片内SRAM12和DTCM空间(完全胜利)
【STM32U3评测】CANFD Bootloader(1)
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
【福利三:逢7发帖赢大礼】使用惠勤致远STM32H743VI开发板+ST7796并口彩屏移植LVGL9.5并分享一些额外内容
【逢7发帖赢大礼】#5 Arduino UNO Q的led matrix
【逢7发帖赢大礼】#4 使用Arduino APP LAB 玩arduino UNO Q
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
微信公众号
手机版