测试示例所用的字体取模软件为PCtoLCD2002,关于它的详细使用说明见如下文档:
PCtoLCD2002软件具体设置如下:


void LCD_SetWindows(u16 xStar, u16 yStar,u16 xEnd,u16 yEnd)
{
LCD_WR_REG(lcddev.setxcmd);
LCD_WR_DATA(xStar>>8);
LCD_WR_DATA(0x00FF&xStar);
LCD_WR_DATA(xEnd>>8);
LCD_WR_DATA(0x00FF&xEnd);
LCD_WR_REG(lcddev.setycmd);
LCD_WR_DATA(yStar>>8);
LCD_WR_DATA(0x00FF&yStar);
LCD_WR_DATA(yEnd>>8);
LCD_WR_DATA(0x00FF&yEnd);
LCD_WriteRAM_Prepare(); //开始写入GRAM
}
void Lcd_WriteData_16Bit(u16 Data)
{
LCD_CS_CLR;
LCD_RS_SET;
SPI_WriteByte(SPI2,Data>>8);
SPI_WriteByte(SPI2,Data);
LCD_CS_SET;
}
void LCD_DrawPoint(u16 x,u16 y)
{
LCD_SetCursor(x,y);//设置光标位置
Lcd_WriteData_16Bit(POINT_COLOR);
}
const unsigned char asc2_0806[95][8]={
... //此例子省略,实际应用需要添加
{0},/*"2",18*/ 不使用数字2
{0x00,0x00,0x78,0xB0,0x08,0x88,0x70,0x00},/*"3",19*/
{0x00,0x00,0x30,0x50,0x90,0x78,0x10,0x00},/*"4",20*/
{0},/*"5",21*/ 不使用数字5
{0x00,0x00,0x70,0x80,0xF8,0x88,0x70,0x00},/*"6",22*/
{0},/*"7",23*/ 不使用数字7
{0x00,0x00,0xF8,0x88,0x70,0x88,0x78,0x00},/*"8",24*/
{0},/*"9",25*/ 不使用数字9
... //此例子省略,实际应用需要添加
}
//16x16中文字体结构体定义
typedef struct
{
unsigned char Index[2]; //存放汉字GBK码
char Msk[32]; //存放汉字取模数据
}typFNT_GB16; //结构体名称可以自己定义
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//24x24中文字体结构体定义
typedef struct
{
unsigned char Index[2]; //存放汉字GBK码
char Msk[72]; //存放汉字取模数据
}typFNT_GB24; //结构体名称可以自己定义
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//32x32中文字体结构体定义
typedef struct
{
unsigned char Index[2]; //存放汉字GBK码
char Msk[128]; //存放汉字取模数据
}typFNT_GB32; //结构体名称可以自己定义
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//48x48中文字体结构体定义
typedef struct
{
unsigned char Index[2]; //存放汉字GBK码
char Msk[288]; //存放汉字取模数据
}typFNT_GB48; //结构体名称可以自己定义