ST提供的lcd示例程序中并没有汉字自库,需要在ChineseTable中添加汉字点阵编码,研究了一下万利的LCD例程,可以看出字符的显示是按以8点为宽度的矩阵为单位来显示的,每个字符先显示上半部分的8*8点阵,再显示下半部分的,按照这个规律设置汉字点阵即可实现汉字的显示。这里推荐一个小软件HZDotReader,可以提取汉字和英文的点阵,为适合万利给的固件函数需要在字体设定中选择16*16点,在字符取点设定中选纵向8点下高位和左到右,上到下模式,输出设定中选C格式8列,将输出文件中的数组直接添加到ChineseTable中,并把二三列对调即可。使用时直接调用LCD_DrawChar或LCD_DrawString但要注意的是汉字占用两个英文字符的宽度,length要为偶数。
位图的显示要复杂一些,没有找到能直接提取位图数据的的软件,需要用WinHex将位图的16进制代码提取出来处理一下才能供LCD使用。找一个符合屏幕尺寸的位图文件,在作水平翻转,90°旋转和反色后,用winHex将offset在3E之前的那62个字节的数据删掉,并将剩下的数据转换为ASCII码,用word和excel将这些数据做一下处理:添加0x、换行、转置,再替换掉STlogo数据就可以通过调用LCD_Draw_ST_Logo在LCD上显示了。

晒个图 ,我的logo……