测试示例所用的字体取模软件为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; //结构体名称可以自己定义