在emwin中显示字库芯片GT23L24M0140的字模

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.


环境:

主机:WIN8

开发环境:MDK5.13

mcu: stm32f407VGIGH6

emwin: STemWin5.22

字库芯片:GT23L24M0140

说明:

项目中需要显示生僻字,所以不能使用GB2312,选择字库芯片GT23L24M0140,支持GB18030标准。

难点在于在emwin中嵌入此字库芯片的字符,emwin本身有一套接口,所以必须满足这套接口才能显示。

解决的方法是先移植在emwin中显示sd卡/flash中字库的函数,然后将具体读取函数替换成直接读取字库芯片的函数。

字库芯片的驱动程序见此文:驱动字库芯片GT23L24M0140

显示效果:

源代码:

GUI_UC_EncodeNone.c

/*
*********************************************************************************************************
*                                                uC/GUI
*                        Universal graphic software for embedded applications
*
*                       (c) Copyright 2002, Micrium Inc., Weston, FL
*                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
*              礐/GUI is protected by international copyright laws. Knowledge of the
*              source code may not be used to write a similar product. This file may
*              only be used in accordance with a license and should not be redistributed
*              in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File        : GUI_UC_EncodeNone.c
Purpose     : Encoding routines for non unicode systems (default)
---------------------------END-OF-HEADER------------------------------
*/ //#include "GUI_Protected.h"
#include "GUI_Private.h"/*********************************************************************
*
*       Static code
*
**********************************************************************
*/
/*********************************************************************
*
*       _GetCharCode
*
* Purpose:
*   Return the UNICODE character code of the current character.
*/
static U16 _GetCharCode(const char GUI_UNI_PTR * s) { if((*s) > 0xA0) { return *(const U16 GUI_UNI_PTR *)s;  } return *(const U8 GUI_UNI_PTR *)s;
} /*********************************************************************
*
*       _GetCharSize
*
* Purpose:
*   Return the number of bytes of the current character.
*/
static int _GetCharSize(const char GUI_UNI_PTR * s) { GUI_USE_PARA(s);  if((*s) > 0xA0) { return 2;  } return 1;
} /*********************************************************************
*
*       _CalcSizeOfChar
*
* Purpose:
*   Return the number of bytes needed for the given character.
*/
static int _CalcSizeOfChar(U16 Char) { GUI_USE_PARA(Char); if(Char > 0xA0A0) { return 2; } return 1;
} /*********************************************************************
*
*       _Encode
*
* Purpose:
*   Encode character into 1/2/3 bytes.
*/
static int _Encode(char *s, U16 Char) { if(Char > 0xA0A0) { *((U16 *)s) = (U16)(Char); return 2; } *s = (U8)(Char); return 1;
} /*********************************************************************
*
*       Static data
*
**********************************************************************
*/
/*********************************************************************
*
*       _API_Table
*/
const GUI_UC_ENC_APILIST GUI__API_TableNone = { _GetCharCode,     /*  return character code as U16 */ _GetCharSize,     /*  return size of character: 1 */ _CalcSizeOfChar,  /*  return size of character: 1 */ _Encode           /*  Encode character */
}; /*********************************************************************
*
*       Exported code
*
**********************************************************************
*/
/*********************************************************************
*
*       GUI_UC_SetEncodeNone
*/
void GUI_UC_SetEncodeNone_User(void) { GUI_LOCK(); //GUI_Context.pUC_API = &GUI__API_TableNone; GUI_pUC_API = &GUI__API_TableNone; GUI_UNLOCK();
} /*************************** End of file ****************************/

GUI_CharPEx.c

#include <stddef.h>           /* needed for definition of NULL */
#include "GUI_Private.h"
//#include "ff.h" #include "string.h"#include "inf_font.h"#include "font_type.h"//字模数据的暂存数组,以单个字模的最大字节数为设定值
#define BYTES_PER_FONT      1024
static U8 GUI_FontDataBuf[BYTES_PER_FONT]; ///*---------------------------------------------------------------------------*/
///*字库外部函数部分-----------------------------------------------------------*/
//void GUI_X_GetFontData(char* font, U32 oft, U8 *ptr, U8 bytes)
//{ FIL fsrc;        // 定义文件操作类  FRESULT res;  // 定义操作结果变量  UINT br;         // 定义读写数量变量 res = f_open(&fsrc, font, FA_OPEN_EXISTING | FA_READ);   //打开字库文件   if(res != FR_OK)   {   }   res = f_lseek(&fsrc,oft); //找到首地址  res = f_read(&fsrc, ptr, bytes, &br); //读取32个字库点阵数据 res = f_close(&fsrc); //关闭字体
//  //memcpy(ptr,acFontHZ12_b9da1,24);
//  //memcpy(ptr,read_buf,24);
//
//
//  bytes = inf_font_read(ASCII_7X8,'j',ptr);
//} static void GUI_GetDataFromMemory(const GUI_FONT_PROP GUI_UNI_PTR *pProp, U16P c)
{ U16 BytesPerFont; U32 oft; char *font = (char *)pProp->paCharInfo->pData; //汉字正序uint8_t c1 = c >> 8;uint8_t c2 = c;uint16_t c3 = (c2 << 8) + c1;BytesPerFont = GUI_pContext->pAFont->YSize * pProp->paCharInfo->BytesPerLine; //每个字模的数据字节数 if (BytesPerFont > BYTES_PER_FONT){BytesPerFont = BYTES_PER_FONT;} if (c < 0x80)                                                               //英文字符地址偏移算法 { oft = (c-0x20) * BytesPerFont; BytesPerFont = inf_font_read(Font_Now,c,GUI_FontDataBuf);} else                                                                           { oft = ((((c >> 8)-0xA1)) + ((c & 0xFF)-0xb0) * 94)* BytesPerFont; //中文字符地址偏移算法包括符号 BytesPerFont = inf_font_read(Font_Now,c3,GUI_FontDataBuf);
//      if (strncmp(FontEx_HZ,font,sizeof(FontEx_HZ)) == 0)
//      {
//
//      }} //GUI_X_GetFontData(font, oft, GUI_FontDataBuf, BytesPerFont); //    BytesPerFont = inf_font_read(Font_Now,c,GUI_FontDataBuf);
} void GUIPROP_X_DispChar(U16P c)
{ int BytesPerLine; GUI_DRAWMODE DrawMode = GUI_pContext->TextMode; const GUI_FONT_PROP GUI_UNI_PTR *pProp = GUI_pContext->pAFont->p.pProp; //搜索定位字库数据信息  for (; pProp; pProp = pProp->pNext)                                          { if ((c >= pProp->First) && (c <= pProp->Last))break; } if (pProp) { GUI_DRAWMODE OldDrawMode; const GUI_CHARINFO GUI_UNI_PTR * pCharInfo = pProp->paCharInfo; GUI_GetDataFromMemory(pProp, c);//取出字模数据 BytesPerLine = pCharInfo->BytesPerLine; OldDrawMode  = LCD_SetDrawMode(DrawMode); LCD_DrawBitmap(GUI_pContext->DispPosX, GUI_pContext->DispPosY, pCharInfo->XSize, GUI_pContext->pAFont->YSize, GUI_pContext->pAFont->XMag, GUI_pContext->pAFont->YMag, 1,     /* Bits per Pixel */ BytesPerLine, &GUI_FontDataBuf[0], &LCD_BKCOLORINDEX ); /* Fill empty pixel lines */ if (GUI_pContext->pAFont->YDist > GUI_pContext->pAFont->YSize)  { int YMag = GUI_pContext->pAFont->YMag; int YDist = GUI_pContext->pAFont->YDist * YMag; int YSize = GUI_pContext->pAFont->YSize * YMag; if (DrawMode != LCD_DRAWMODE_TRANS)  { LCD_COLOR OldColor = GUI_GetColor(); GUI_SetColor(GUI_GetBkColor()); LCD_FillRect(GUI_pContext->DispPosX, GUI_pContext->DispPosY + YSize,  GUI_pContext->DispPosX + pCharInfo->XSize,  GUI_pContext->DispPosY + YDist); GUI_SetColor(OldColor); } } LCD_SetDrawMode(OldDrawMode); /* Restore draw mode */ GUI_pContext->DispPosX += pCharInfo->XDist * GUI_pContext->pAFont->XMag; }
}
/*********************************************************************
*
*       GUIPROP_GetCharDistX
*/
int GUIPROP_X_GetCharDistX(U16P c)
{ const GUI_FONT_PROP GUI_UNI_PTR * pProp = GUI_pContext->pAFont->p.pProp;   for (; pProp; pProp = pProp->pNext)                                          { if ((c >= pProp->First) && (c <= pProp->Last))break; } return (pProp) ? (pProp->paCharInfo)->XSize * GUI_pContext->pAFont->XMag : 0;
}

font_type.h

/*********************************************************************
*                            字体类型定义头文件
*                          (c)copyright 2015,jdh
*                           All Right Reserved
*修改日期:2015/2/2 by jdh
**********************************************************************/#ifndef _FONT_TYPE_H_
#define _FONT_TYPE_H_/*********************************************************************
*                           头文件
**********************************************************************/#include "GUI.h"
#include "inf_font.h"/*********************************************************************
*                           全局变量
**********************************************************************//*********************************************************************
*                           当前字体
**********************************************************************/extern uint8_t Font_Now;/*********************************************************************
*                           GUI结构:7*8点阵ASCII标准字符
**********************************************************************/extern GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_7X8;/*********************************************************************
*                           GUI结构:7*8点阵ASCII粗体字符
**********************************************************************/extern GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_BOLD_7X8;/*********************************************************************
*                           GUI结构:6*12点阵ASCII标准字符
**********************************************************************/extern GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_6X12;/*********************************************************************
*                           GUI结构:8*16点阵ASCII标准字符
**********************************************************************/extern GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_8X16;/*********************************************************************
*                           GUI结构:8*16点阵ASCII粗体字符
**********************************************************************/extern GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_BOLD_8X16;/*********************************************************************
*                           GUI结构:12*24点阵ASCII标准字符
**********************************************************************/extern GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_12X24;/*********************************************************************
*                           GUI结构:16*32点阵ASCII标准字符
**********************************************************************/extern GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_16X32;/*********************************************************************
*                           GUI结构:16*32点阵ASCII粗体字符
**********************************************************************/extern GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_BOLD_16X32;/*********************************************************************
*                           GUI结构:12*12点阵GB18030汉字
**********************************************************************/extern GUI_CONST_STORAGE  GUI_FONT GUI_GB18030_12X12;/*********************************************************************
*                           GUI结构:16*16点阵GB18030汉字
**********************************************************************/extern GUI_CONST_STORAGE  GUI_FONT GUI_GB18030_16X16;/*********************************************************************
*                           GUI结构:24*24点阵GB18030汉字
**********************************************************************/extern GUI_CONST_STORAGE  GUI_FONT GUI_GB18030_24X24;/*********************************************************************
*                           函数
**********************************************************************//*********************************************************************
*                           设置字体
*说明:在使用字体前,必须先调用此函数
*参数:font:字体
**********************************************************************/void set_font(uint8_t font);#endif

font_type.c

/*********************************************************************
*                            字体类型定义文件
*                          (c)copyright 2015,jdh
*                           All Right Reserved
*修改日期:2015/2/2 by jdh
*修改日期:2015/2/3 by jdh
*修改日期:2015/2/5 by jdh
**********************************************************************/#include "font_type.h"extern int GUIPROP_X_GetCharDistX(U16P c);
extern void GUIPROP_X_DispChar(U16P c) ;  extern void GUI_UC_SetEncodeNone_User(void);/*********************************************************************
*                           全局变量
**********************************************************************//*********************************************************************
*                           当前字体
**********************************************************************/uint8_t Font_Now = 0;GUI_CONST_STORAGE GUI_CHARINFO GUI_FontHZ12_CharInfo[2] =
{     {  6,    6,  1, (void *)"1:/system/gui_font/ASC6x12.bin"   },      //&ASC_ROM_8X16 {  12,  12,  2, (void *)"1:/system/gui_font/HZ12x12.bin"},         //&HZ_ROM_16X16
};
GUI_CONST_STORAGE GUI_FONT_PROP GUI_FontHZ12_PropHZ= {
//      0xA1A1,
//      0xF7FE,  0xA1A1,  0xFFFF,  &GUI_FontHZ12_CharInfo[1], (void *)0,
};
GUI_CONST_STORAGE  GUI_FONT_PROP GUI_FontHZ12_PropASC= { 0x0000,  0x007F,  &GUI_FontHZ12_CharInfo[0], (void GUI_CONST_STORAGE *)&GUI_FontHZ12_PropHZ,
};
//GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ12 =
//{
//  GUI_FONTTYPE_PROP_USER,
//      12, //XSIZE
//      12,     //YSIZE
//      1,      //X方向放大倍数
//      1,    //Y方向放大倍数
//      (void GUI_CONST_STORAGE *)&GUI_FontHZ12_PropASC
//};
GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ12 =
{ GUI_FONTTYPE_PROP_USER,12,    //XSIZE  12,    //YSIZE1,       //X方向放大倍数1,    //Y方向放大倍数(void GUI_CONST_STORAGE *)&GUI_FontHZ12_PropASC
}; GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ12x2 =
{ GUI_FONTTYPE_PROP_USER,12,  12,  2,   2,   (void GUI_CONST_STORAGE *)&GUI_FontHZ12_PropASC
};/*********************************************************************
*                           GUI结构:7*8点阵ASCII标准字符
**********************************************************************/GUI_CONST_STORAGE GUI_CHARINFO GUI_ASCII_7X8_CharInfo[1] =
{     {  ASCII_7X8_WIDTH,    ASCII_7X8_HEIGHT,  1, (void *)0   },
}; GUI_CONST_STORAGE  GUI_FONT_PROP GUI_ASCII_7X8_PropASC =
{ 0x0000,  0x007F,  &GUI_ASCII_7X8_CharInfo[0], (void *)0
}; GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_7X8 =
{ GUI_FONTTYPE_PROP_USER,ASCII_7X8_WIDTH * 2,       //XSIZE  ASCII_7X8_HEIGHT,              //YSIZE1,                           //X方向放大倍数1,                         //Y方向放大倍数(void GUI_CONST_STORAGE *)&GUI_ASCII_7X8_PropASC
}; /*********************************************************************
*                           GUI结构:7*8点阵ASCII粗体字符
**********************************************************************/GUI_CONST_STORAGE GUI_CHARINFO GUI_ASCII_BOLD_7X8_CharInfo[1] =
{     {  ASCII_BOLD_7X8_WIDTH,    ASCII_BOLD_7X8_HEIGHT,  1, (void *)0   },
}; GUI_CONST_STORAGE  GUI_FONT_PROP GUI_ASCII_BOLD_7X8_PropASC =
{ 0x0000,  0x007F,  &GUI_ASCII_BOLD_7X8_CharInfo[0], (void *)0
}; GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_BOLD_7X8 =
{ GUI_FONTTYPE_PROP_USER,ASCII_BOLD_7X8_WIDTH * 2,  //XSIZE  ASCII_BOLD_7X8_HEIGHT,     //YSIZE1,                           //X方向放大倍数1,                         //Y方向放大倍数(void GUI_CONST_STORAGE *)&GUI_ASCII_BOLD_7X8_PropASC
}; /*********************************************************************
*                           GUI结构:6*12点阵ASCII标准字符
**********************************************************************/GUI_CONST_STORAGE GUI_CHARINFO GUI_ASCII_6X12_CharInfo[1] =
{     {  ASCII_6X12_WIDTH,    ASCII_6X12_HEIGHT / 2,  1, (void *)0   },
}; GUI_CONST_STORAGE  GUI_FONT_PROP GUI_ASCII_6X12_PropASC =
{ 0x0000,  0x007F,  &GUI_ASCII_6X12_CharInfo[0], (void *)0
}; GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_6X12 =
{ GUI_FONTTYPE_PROP_USER,ASCII_6X12_WIDTH * 2,          //XSIZE  ASCII_6X12_HEIGHT,         //YSIZE1,                           //X方向放大倍数1,                         //Y方向放大倍数(void GUI_CONST_STORAGE *)&GUI_ASCII_6X12_PropASC
};/*********************************************************************
*                           GUI结构:8*16点阵ASCII标准字符
**********************************************************************/GUI_CONST_STORAGE GUI_CHARINFO GUI_ASCII_8X16_CharInfo[1] =
{     {  ASCII_8X16_WIDTH,    ASCII_8X16_HEIGHT / 2,  1, (void *)0   },
}; GUI_CONST_STORAGE  GUI_FONT_PROP GUI_ASCII_8X16_PropASC =
{ 0x0000,  0x007F,  &GUI_ASCII_8X16_CharInfo[0], (void *)0
}; GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_8X16 =
{ GUI_FONTTYPE_PROP_USER,ASCII_8X16_WIDTH * 2,      //XSIZE  ASCII_8X16_HEIGHT,         //YSIZE1,                           //X方向放大倍数1,                         //Y方向放大倍数(void GUI_CONST_STORAGE *)&GUI_ASCII_8X16_PropASC
}; /*********************************************************************
*                           GUI结构:8*16点阵ASCII粗体字符
**********************************************************************/GUI_CONST_STORAGE GUI_CHARINFO GUI_ASCII_BOLD_8X16_CharInfo[1] =
{     {  ASCII_BOLD_8X16_WIDTH,    ASCII_BOLD_8X16_HEIGHT / 2,  1, (void *)0   },
}; GUI_CONST_STORAGE  GUI_FONT_PROP GUI_ASCII_BOLD_8X16_PropASC =
{ 0x0000,  0x007F,  &GUI_ASCII_BOLD_8X16_CharInfo[0], (void *)0
}; GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_BOLD_8X16 =
{ GUI_FONTTYPE_PROP_USER,ASCII_BOLD_8X16_WIDTH * 2,     //XSIZE  ASCII_BOLD_8X16_HEIGHT,    //YSIZE1,                           //X方向放大倍数1,                         //Y方向放大倍数(void GUI_CONST_STORAGE *)&GUI_ASCII_BOLD_8X16_PropASC
};/*********************************************************************
*                           GUI结构:12*24点阵ASCII标准字符
**********************************************************************/GUI_CONST_STORAGE GUI_CHARINFO GUI_ASCII_12X24_CharInfo[1] =
{     {  ASCII_12X24_WIDTH,    ASCII_12X24_HEIGHT / 2,  2, (void *)0   },
}; GUI_CONST_STORAGE  GUI_FONT_PROP GUI_ASCII_12X24_PropASC =
{ 0x0000,  0x007F,  &GUI_ASCII_12X24_CharInfo[0], (void *)0
}; GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_12X24 =
{ GUI_FONTTYPE_PROP_USER,ASCII_12X24_WIDTH * 2,         //XSIZE  ASCII_12X24_HEIGHT,            //YSIZE1,                           //X方向放大倍数1,                         //Y方向放大倍数(void GUI_CONST_STORAGE *)&GUI_ASCII_12X24_PropASC
};/*********************************************************************
*                           GUI结构:16*32点阵ASCII标准字符
**********************************************************************/GUI_CONST_STORAGE GUI_CHARINFO GUI_ASCII_16X32_CharInfo[1] =
{     {  ASCII_16X32_WIDTH,    ASCII_16X32_HEIGHT / 2,  2, (void *)0   },
}; GUI_CONST_STORAGE  GUI_FONT_PROP GUI_ASCII_16X32_PropASC =
{ 0x0000,  0x007F,  &GUI_ASCII_16X32_CharInfo[0], (void *)0
}; GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_16X32 =
{ GUI_FONTTYPE_PROP_USER,ASCII_16X32_WIDTH * 2,         //XSIZE  ASCII_16X32_HEIGHT,            //YSIZE1,                           //X方向放大倍数1,                         //Y方向放大倍数(void GUI_CONST_STORAGE *)&GUI_ASCII_16X32_PropASC
}; /*********************************************************************
*                           GUI结构:16*32点阵ASCII粗体字符
**********************************************************************/GUI_CONST_STORAGE GUI_CHARINFO GUI_ASCII_BOLD_16X32_CharInfo[1] =
{     {  ASCII_BOLD_16X32_WIDTH,    ASCII_BOLD_16X32_HEIGHT / 2,  2, (void *)0   },
}; GUI_CONST_STORAGE  GUI_FONT_PROP GUI_ASCII_BOLD_16X32_PropASC =
{ 0x0000,  0x007F,  &GUI_ASCII_BOLD_16X32_CharInfo[0], (void *)0
}; GUI_CONST_STORAGE  GUI_FONT GUI_ASCII_BOLD_16X32 =
{ GUI_FONTTYPE_PROP_USER,ASCII_BOLD_16X32_WIDTH * 2,        //XSIZE  ASCII_BOLD_16X32_HEIGHT,   //YSIZE1,                           //X方向放大倍数1,                         //Y方向放大倍数(void GUI_CONST_STORAGE *)&GUI_ASCII_BOLD_16X32_PropASC
}; /*********************************************************************
*                           GUI结构:12*12点阵GB18030汉字
**********************************************************************/GUI_CONST_STORAGE GUI_CHARINFO GUI_GB18030_12X12_CharInfo[1] =
{      {  GB18030_12X12_WIDTH,    GB18030_12X12_HEIGHT,  2, (void *)0   },
}; GUI_CONST_STORAGE  GUI_FONT_PROP GUI_GB18030_12X12_PropASC =
{ 0x0,  0xFFFF,  &GUI_GB18030_12X12_CharInfo[0], (void *)0
}; GUI_CONST_STORAGE  GUI_FONT GUI_GB18030_12X12 =
{ GUI_FONTTYPE_PROP_USER,GB18030_12X12_WIDTH,       //XSIZE  GB18030_12X12_HEIGHT,          //YSIZE1,                           //X方向放大倍数1,                         //Y方向放大倍数(void GUI_CONST_STORAGE *)&GUI_GB18030_12X12_PropASC
};/*********************************************************************
*                           GUI结构:16*16点阵GB18030汉字
**********************************************************************/GUI_CONST_STORAGE GUI_CHARINFO GUI_GB18030_16X16_CharInfo[1] =
{      {  GB18030_16X16_WIDTH,    GB18030_16X16_HEIGHT,  2, (void *)0   },
}; GUI_CONST_STORAGE  GUI_FONT_PROP GUI_GB18030_16X16_PropASC =
{ 0x0,  0xFFFF,  &GUI_GB18030_16X16_CharInfo[0], (void *)0
}; GUI_CONST_STORAGE  GUI_FONT GUI_GB18030_16X16 =
{ GUI_FONTTYPE_PROP_USER,GB18030_16X16_WIDTH,       //XSIZE  GB18030_16X16_HEIGHT,          //YSIZE1,                           //X方向放大倍数1,                         //Y方向放大倍数(void GUI_CONST_STORAGE *)&GUI_GB18030_16X16_PropASC
};/*********************************************************************
*                           GUI结构:24*24点阵GB18030汉字
**********************************************************************/GUI_CONST_STORAGE GUI_CHARINFO GUI_GB18030_24X24_CharInfo[1] =
{      {  GB18030_24X24_WIDTH,    GB18030_24X24_HEIGHT,  3, (void *)0   },
}; GUI_CONST_STORAGE  GUI_FONT_PROP GUI_GB18030_24X24_PropASC =
{ 0x0,  0xFFFF,  &GUI_GB18030_24X24_CharInfo[0], (void *)0
}; GUI_CONST_STORAGE  GUI_FONT GUI_GB18030_24X24 =
{ GUI_FONTTYPE_PROP_USER,GB18030_24X24_WIDTH,       //XSIZE  GB18030_24X24_HEIGHT,          //YSIZE1,                           //X方向放大倍数1,                         //Y方向放大倍数(void GUI_CONST_STORAGE *)&GUI_GB18030_24X24_PropASC
};/*********************************************************************
*                           设置字体
*说明:在使用字体前,必须先调用此函数
*参数:font:字体
**********************************************************************/void set_font(uint8_t font)
{GUI_UC_SetEncodeNone_User();Font_Now = font;
//  switch (font)
//  {
//      case ASCII_7X8:
//      {
//          GUI_SetFont(&GUI_ASCII_7X8);
//          break;
//      }
//      case ASCII_BOLD_7X8:
//      {
//          GUI_SetFont(&GUI_ASCII_BOLD_7X8);
//          break;
//      }
//      case ASCII_6X12:
//      {
//          GUI_SetFont(&GUI_ASCII_6X12);
//          break;
//      }
//      case ASCII_8X16:
//      {
//          GUI_SetFont(&GUI_ASCII_8X16);
//          break;
//      }
//      case ASCII_BOLD_8X16:
//      {
//          GUI_SetFont(&GUI_ASCII_BOLD_8X16);
//          break;
//      }
//      case ASCII_12X24:
//      {
//          GUI_SetFont(&GUI_ASCII_12X24);
//          break;
//      }
//      case ASCII_16X32:
//      {
//          GUI_SetFont(&GUI_ASCII_16X32);
//          break;
//      }
//      case ASCII_BOLD_16X32:
//      {
//          GUI_SetFont(&GUI_ASCII_BOLD_16X32);
//          break;
//      }
//      case GB18030_12X12:
//      {
//          GUI_SetFont(&GUI_GB18030_12X12);
//          break;
//      }
//      case GB18030_16X16:
//      {
//          GUI_SetFont(&GUI_GB18030_16X16);
//          break;
//      }
//      case GB18030_24X24:
//      {
//          GUI_SetFont(&GUI_GB18030_24X24);
//          break;
//      }
//  }
}

测试代码:

set_font(ASCII_7X8);GUI_SetFont(&GUI_ASCII_7X8);GUI_DispStringAtCEOL("ASCII_7X8:I am jdh!", 0, 0);set_font(ASCII_BOLD_7X8);GUI_SetFont(&GUI_ASCII_BOLD_7X8);GUI_DispStringAtCEOL("ASCII_7X8_BOLD:I am jdh!", 0, 20);set_font(ASCII_6X12);GUI_SetFont(&GUI_ASCII_6X12);GUI_DispStringAtCEOL("ASCII_6X12:I am jdh!", 0, 40);set_font(ASCII_8X16);GUI_SetFont(&GUI_ASCII_8X16);GUI_DispStringAtCEOL("ASCII_8X16:I am jdh!", 0, 60);set_font(ASCII_BOLD_8X16);GUI_SetFont(&GUI_ASCII_BOLD_8X16);GUI_DispStringAtCEOL("ASCII_8X16_BOLD:I am jdh!", 0, 80);set_font(ASCII_12X24);GUI_SetFont(&GUI_ASCII_12X24);GUI_DispStringAtCEOL("ASCII_12X24:I am jdh!", 0, 100);set_font(ASCII_16X32);GUI_SetFont(&GUI_ASCII_16X32);GUI_DispStringAtCEOL("ASCII_16X32:I am jdh!", 0, 130);set_font(ASCII_BOLD_16X32);GUI_SetFont(&GUI_ASCII_BOLD_16X32);GUI_DispStringAtCEOL("ASCII_16X32_BOLD:I am jdh!", 0, 170);set_font(GB18030_12X12);GUI_SetFont(&GUI_GB18030_12X12);inf_font_asc2gb18030(str,"12X12:我是jdh!");GUI_DispStringAtCEOL(str, 0, 200);set_font(GB18030_16X16);GUI_SetFont(&GUI_GB18030_16X16);inf_font_asc2gb18030(str,"16X16:我是jdh!");GUI_DispStringAtCEOL(str, 0, 230);set_font(GB18030_24X24);GUI_SetFont(&GUI_GB18030_24X24);inf_font_asc2gb18030(str,"24X24:我是jdh!");GUI_DispStringAtCEOL(str, 0, 260);





在emwin中显示字库芯片GT23L24M0140的字模相关推荐

  1. 驱动字库芯片GT23L24M0140

     驱动字库芯片GT23L24M0140 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN8 开发环境:MDK5.13 mcu: ...

  2. 高通字库芯片GT20L16S1Y驱动 0.96寸 OLED 任意显示中文

    连续两个月的加班,给ODM客户生产温控器订单,今天终于顺利发货,对于工程师出身的我,终于可以对着电脑,消停几天,研究技术,分享技术了,闲话少说,直接进入正题: 半年前有个老客户介绍个中央某院的项目,我 ...

  3. 用单片机在屏幕上显示字库中的汉字

    在屏幕上显示字库中汉字 显示原理 字体模型 1.取模 2.字库 显示函数的实现 1.首先实现点亮一个点 2.以汉字12 * 12,字符6 * 12为例写的驱动函数 3.显示函数(集成到一个函数中) 总 ...

  4. UCGUI使用外部字库芯片显示汉字

    在开发板中用的是外部字库芯片GT21L16S2W 调试步骤: 一.编写GT21L16S2W驱动,包括GT21L16S2W初始化函数和GT21L16S2W读函数,并配置好GT21L16S2W引脚,然后在 ...

  5. emwin 使用外部字库_emWin – 汉字字库生成及显示 | 学步园

    使用了emWin之后,除了画图形或bmp之外,另外一个大头就是显示字符了.字符包括ASCII码,当然最重要的就是汉字显示了. 这里就介绍如何生成自定义的汉字字库,以及如何显示在TFT屏幕上. 硬件准备 ...

  6. 集通字库芯片GT20L16S1Y 读取字体数据

    [本文发布地址https://blog.csdn.net/Stack_/article/details/120432945,未经许可不得转载,转载须注明出处] 这个字库芯片的厂家叫高通,但不是美国那个 ...

  7. 字库芯片介绍与使用(附STM32程序~~~)

    不知道大家是否了解字库芯片(网上这方面的资料好像挺少的),今天给大家简单介绍一下字库芯片. 先举个例子,如果我们想在点阵屏或液晶屏上面显示一个88的正方形,我们该怎么做. 很简单,假设屏上面" ...

  8. “高通”字库芯片的使用方法

    STM32+字库 "高通"字库芯片的使用方法 "高通"字库芯片的使用方法 STM32+字库 前言 一.电路设计 二.程序设计 代码如下: 整体代码部分 1.字库 ...

  9. 字库芯片GT20L16S1Y使用记录

    1.芯片基本信息 16x16点阵的汉字库芯片 支持GB2312国标简体汉字(含有国家信标委合法授权).ASCII字符 排列格式为竖置横排 SPI 串行总线接口 通过字符内码计算字库在芯片中的地址 2. ...

  10. stm32【GT30L32S4W字库芯片】

    GT30L32S4W字库芯片调试 测试平台:STM32F103RFT6 库版本:官方标准库3.5.0版本 字库芯片:GT30L32S4W 字库标准:GB2312国标汉字,ASCII字符 点阵排列方式: ...

最新文章

  1. Silverlight+WCF 实战-网络象棋最终篇之对战视频-上篇[客户端开启视频/注册编号/接收视频](五)...
  2. dm9000 driver 1
  3. modbus tcp 入门详解
  4. JAVA获得天气json数据的方法,获取从天气预报接口返回回来的json数据
  5. vue.js tutorial for beginner [Is it possible for us to learn vue.js in a minute?]
  6. 机器是没有思想的,只会安装规定好的电路工作机器是没有思想的,只会安装规定好的电路工作
  7. 英国政府寻求在2022年成为“全球性网络力量”
  8. c语言程序如何链接到数据库,c语言如何链接到数据库
  9. 汉字,五笔,拼音的转换
  10. 大数据技术对互联网的影响
  11. 兰资环单招计算机基础主要考什么,高职单招考试范围单招一般都考什么科目
  12. golang爬取Instagram内容下载地址
  13. 计算机专业的学生怎样练习编程才能把编程学精通?
  14. js 内置对象常用方法
  15. LeetCode 股票问题买股票最佳时机ⅠⅡⅢⅣ 含手续费含冷冻期
  16. TaoAudio: 淘宝直播短视频音频解决方案
  17. 基于springboot的课堂考勤签到打卡小程序
  18. dell灵越笔记本后盖怎么拆_戴尔灵越5584笔记本按键拆卸、安装教程
  19. python发短信验证码_python利用第三方模块,发送短信验证码
  20. 赛况激烈!2022 OceanBase数据库大赛50强诞生

热门文章

  1. 单片机蜂鸣器发出叮咚c语言程序,单片机门铃程序设计 按键按下触发蜂鸣器门铃“叮咚”响...
  2. 人脸检测进阶:使用 dlib、OpenCV 和 Python 检测眼睛、鼻子、嘴唇和下巴等面部五官
  3. HTML特效动画、焦点图
  4. captura 录制出来的是黑屏_黑屏:我录制的视频播放时画面是黑的解决方案 - Bandicam(班迪录屏)...
  5. 弱监督学习和小目标检测
  6. 给新建属性设置自己需要的快捷键
  7. Quartz 表达式的学习
  8. 国内.NET论坛源代码不完全搜集
  9. matlab时域采样理论得验证,基于matlab时域采样和频域采样验证毕业设计
  10. 提供多种版本- MSI Code条形码字体具有可扩充性条形码控件MSI Plessey