inf_font.h
/*********************************************************************
* 字库芯片接口层头文件
* (c)copyright 2015,jdh
* All Right Reserved
*新建日期:2015/2/3 by jdh
*修改日期:2015/2/5 by jdh
*修改日期:2015/2/6 by jdh
**********************************************************************/
#ifndef _INF_FONT_H_
#define _INF_FONT_H_
/*********************************************************************
* 头文件
**********************************************************************/
#include "drv_font.h"
/*********************************************************************
* 宏定义
**********************************************************************/
/*********************************************************************
* 字体定义
**********************************************************************/
/*********************************************************************
* 7*8点阵ASCII标准字符
**********************************************************************/
//字体
#define ASCII_7X8 1
//起始地址
#define ASCII_7X8_ADDR_BASE 0x080300
//宽,位数
#define ASCII_7X8_WIDTH 8
//高,位数
#define ASCII_7X8_HEIGHT 8
//字节数
#define ASCII_7X8_SIZE 8
/*********************************************************************
* 7*8点阵ASCII粗体字符
**********************************************************************/
//字体
#define ASCII_BOLD_7X8 2
//起始地址
#define ASCII_BOLD_7X8_ADDR_BASE 0x080600
//宽,位数
#define ASCII_BOLD_7X8_WIDTH 8
//高,位数
#define ASCII_BOLD_7X8_HEIGHT 8
//字节数
#define ASCII_BOLD_7X8_SIZE 8
/*********************************************************************
* 6*12点阵ASCII标准字符
**********************************************************************/
//字体
#define ASCII_6X12 3
//起始地址
#define ASCII_6X12_ADDR_BASE 0x080900
//宽,位数
#define ASCII_6X12_WIDTH 8
//高,位数
#define ASCII_6X12_HEIGHT 12
//字节数
#define ASCII_6X12_SIZE 12
/*********************************************************************
* 8*16点阵ASCII标准字符
**********************************************************************/
//字体
#define ASCII_8X16 4
//起始地址
#define ASCII_8X16_ADDR_BASE 0x080D80
//宽,位数
#define ASCII_8X16_WIDTH 8
//高,位数
#define ASCII_8X16_HEIGHT 16
//字节数
#define ASCII_8X16_SIZE 16
/*********************************************************************
* 8*16点阵ASCII粗体字符
**********************************************************************/
//字体
#define ASCII_BOLD_8X16 5
//起始地址
#define ASCII_BOLD_8X16_ADDR_BASE 0x081580
//宽,位数
#define ASCII_BOLD_8X16_WIDTH 8
//高,位数
#define ASCII_BOLD_8X16_HEIGHT 16
//字节数
#define ASCII_BOLD_8X16_SIZE 16
/*********************************************************************
* 12*24点阵ASCII标准字符
**********************************************************************/
//字体
#define ASCII_12X24 6
//起始地址
#define ASCII_12X24_ADDR_BASE 0x081B80
//宽,位数
#define ASCII_12X24_WIDTH 12
//高,位数
#define ASCII_12X24_HEIGHT 24
//字节数
#define ASCII_12X24_SIZE 48
/*********************************************************************
* 16*32点阵ASCII标准字符
**********************************************************************/
//字体
#define ASCII_16X32 7
//起始地址
#define ASCII_16X32_ADDR_BASE 0x082D80
//宽,位数
#define ASCII_16X32_WIDTH 16
//高,位数
#define ASCII_16X32_HEIGHT 32
//字节数
#define ASCII_16X32_SIZE 64
/*********************************************************************
* 16*32点阵ASCII粗体字符
**********************************************************************/
//字体
#define ASCII_BOLD_16X32 8
//起始地址
#define ASCII_BOLD_16X32_ADDR_BASE 0x084580
//宽,位数
#define ASCII_BOLD_16X32_WIDTH 16
//高,位数
#define ASCII_BOLD_16X32_HEIGHT 32
//字节数
#define ASCII_BOLD_16X32_SIZE 64
/*********************************************************************
* 12*12点阵GB18030汉字
**********************************************************************/
//字体
#define GB18030_12X12 9
//起始地址
#define GB18030_12X12_ADDR_BASE 0x093D0E
//宽,位数
#define GB18030_12X12_WIDTH 12
//高,位数
#define GB18030_12X12_HEIGHT 12
//字节数
#define GB18030_12X12_SIZE 24
/*********************************************************************
* 16*16点阵GB18030汉字
**********************************************************************/
//字体
#define GB18030_16X16 10
//起始地址
#define GB18030_16X16_ADDR_BASE 0x114FDE
//宽,位数
#define GB18030_16X16_WIDTH 16
//高,位数
#define GB18030_16X16_HEIGHT 16
//字节数
#define GB18030_16X16_SIZE 32
/*********************************************************************
* 24*24点阵GB18030汉字
**********************************************************************/
//字体
#define GB18030_24X24 11
//起始地址
#define GB18030_24X24_ADDR_BASE 0x1F43DE
//宽,位数
#define GB18030_24X24_WIDTH 24
//高,位数
#define GB18030_24X24_HEIGHT 24
//字节数
#define GB18030_24X24_SIZE 72
/*********************************************************************
* 数据结构
**********************************************************************/
/*********************************************************************
* 字体结构
**********************************************************************/
struct _Font_Type
{
uint8_t type;
uint32_t addr_base;
uint8_t width;
uint8_t height;
uint8_t size;
};
/*********************************************************************
* 函数
**********************************************************************/
/*********************************************************************
* 初始化字库芯片
**********************************************************************/
void inf_font_init(void);
/*********************************************************************
* 读取字库
*参数:font:字体
* ch:待读取的字符
* buf:读取的数据
*返回:读取数据的字节数
**********************************************************************/
uint8_t inf_font_read(uint8_t font,uint16_t ch,uint8_t *buf);
/*********************************************************************
* 将ASCII码转换成GB18030编码
*说明:在emwin中调用中文字库,如果其中有ascii码,则必须先调用此函数转换
*参数:dst:输入字符串
* src:输出字符串
**********************************************************************/
void inf_font_asc2gb18030(char *dst,char *src);
#endif
|