OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 23174|回复: 77

uCGUI添加外置字库

  [复制链接]

  离线 

6

主题

19

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2012-10-11
在线时间
0 小时
发表于 2012-11-1 19:47:49 | 显示全部楼层 |阅读模式
正点原子公众号
    
uCGUI添加外置字库


            本人开始遇到的问题是,想在uCGUI界面上增加显示汉字的功能,但是每次需要把汉字的写成.c的文件编写到CPU内,这样很占空间,
也很不方便,用的时候也很麻烦,搜索了几天终于弄出点成果,拿出来跟大家分享一下。
fficeffice" />

1,我们一共要修改2个文件:GUI.h  GUIType.h新建两个文件:GUICharPEx.c GUI_Font12.c

GUI.h :字库声明部分。

GUIType.h:简单的宏定义,写字库的时候需要用到,也可以定义到别的位置。

GUICharPEx.c:主要是自定义汉字的显示算法,和字库的获取方法。

GUI_Font12.c:这个是我们用用的字库,这里只做引导,实际字库在外围器件中,本人用的是SD+文件系统的方式,也可以不加系统,用FLASH等等外部存储设备。

2.每个文件我所做的修改:

Gui.H:

添加:

extern GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ12;

extern GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ14;

extern GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ16;

extern GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ18;

extern GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ20;

extern GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ22;

extern GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ24;

extern GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ26;

extern GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ28;

extern GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ30;

extern GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ32;

只是简单的外部字库声明。

GUIType.h

添加:

#define GUI_FONTTYPE_PROP_X  \

GUIPROP_X_DispChar,\

GUIPROP_X_GetCharDistX,\

GUIMONO_GetFontInfo, \

GUIMONO_IsInFont, \

(tGUI_ENC_APIList*)0 

UC_EncodeNone.c

       修改内容:

#include "GUI_Protected.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;
}

      

GUICharPEx.c

新建立的文件

              #include <stddef.h>           /* needed for definition of NULL */

#include "GUI_Private.h"

#include "ff.h"

//字模数据的暂存数组,以单个字模的最大字节数为设定值

#define BYTES_PER_FONT      128

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); //关闭字体  

}

 

static void GUI_GetDataFromMemory(const GUI_FONT_PROP GUI_UNI_PTR *pProp, U16P c)

{

    U8 BytesPerFont;

    U32 oft;

    char *font = (char *)pProp->paCharInfo->pData;

    BytesPerFont = GUI_Context.pAFont->YSize * pProp->paCharInfo->BytesPerLine; //每个字模的数据字节数

    if (BytesPerFont > BYTES_PER_FONT)

    {BytesPerFont = BYTES_PER_FONT;}

if(c<0x80)                                                                  {

           oft = (c-0x20) * BytesPerFont; //英文字符地址偏移算法

    }

    else                                                                          

    {

           oft = ((((c >> 8)-0xA1)) + ((c & 0xFF)-0xb0) * 94)* BytesPerFont; //中文字符地址偏移算法包括符号

    }

    GUI_X_GetFontData(font, oft, GUI_FontDataBuf, BytesPerFont);

}

 

void GUIPROP_X_DispChar(U16P c) 

{

    int BytesPerLine;

    GUI_DRAWMODE DrawMode = GUI_Context.TextMode;

    const GUI_FONT_PROP GUI_UNI_PTR *pProp = GUI_Context.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_Context.DispPosX, GUI_Context.DispPosY,

                       pCharInfo->XSize, GUI_Context.pAFont->YSize,

                      GUI_Context.pAFont->XMag, GUI_Context.pAFont->YMag,

                       1,     /* Bits per Pixel */

                       BytesPerLine,

                       &GUI_FontDataBuf[0],

                       &LCD_BKCOLORINDEX

                       );

        /* Fill empty pixel lines */

        if (GUI_Context.pAFont->YDist > GUI_Context.pAFont->YSize) 

        {

            int YMag = GUI_Context.pAFont->YMag;

            int YDist = GUI_Context.pAFont->YDist * YMag;

            int YSize = GUI_Context.pAFont->YSize * YMag;

            if (DrawMode != LCD_DRAWMODE_TRANS) 

            {

                LCD_COLOR OldColor = GUI_GetColor();

                GUI_SetColor(GUI_GetBkColor());

               LCD_FillRect(GUI_Context.DispPosX, GUI_Context.DispPosY + YSize, 

                            GUI_Context.DispPosX + pCharInfo->XSize, 

                            GUI_Context.DispPosY + YDist);

                GUI_SetColor(OldColor);

            }

        }

        LCD_SetDrawMode(OldDrawMode); /* Restore draw mode */

        GUI_Context.DispPosX += pCharInfo->XDist * GUI_Context.pAFont->XMag;

    }

}

/*********************************************************************

*

*       GUIPROP_GetCharDistX

*/

int GUIPROP_X_GetCharDistX(U16P c) 

{

    const GUI_FONT_PROP GUI_UNI_PTR * pProp = GUI_Context.pAFont->p.pProp;  

    for (; pProp; pProp = pProp->pNext)                                         

    {

        if ((c >= pProp->First) && (c <= pProp->Last))break;

    }

    return (pProp) ? (pProp->paCharInfo)->XSize * GUI_Context.pAFont->XMag : 0;

}

需要注意的是:

if(c<0x80)                                                                  {

           oft = (c-0x20) * BytesPerFont; //英文字符地址偏移算法

    }

    else                                                                          

    {

           oft = ((((c >> 8)-0xA1)) + ((c & 0xFF)-0xb0) * 94)* BytesPerFont; //中文字符地址偏移算法包括符号

    }

这个字库偏移的算法要根据实际字库的情况而定,我的中文字库全是中文没有字符,是这样的偏移算法,实际情况因个人所用的字库而定。

GUI_Font12.c:

       新建内容:

       #include "GUI.h"

 

extern int GUIPROP_X_GetCharDistX(U16P c);//声明部分

extern void GUIPROP_X_DispChar(U16P c) ; 

 

GUI_CONST_STORAGE GUI_CHARINFO GUI_FontHZ12_CharInfo[2] = 

{    

    { 6, 6, 1, (void *)"1:/system/gui_font/ASC6x12.bin"  },      //&ASC_ROM_6X12 字库的路径

    { 12,            12,         2,(void*)"1:/system/gui_font/HZ12x12.bin"},      //&HZ_ROM_12X12字库的路径

};

GUI_CONST_STORAGE GUI_FONT_PROP GUI_FontHZ12_PropHZ= {

      0xA1A1, //第一个字符

      0xF7FE, //最后一个字符

      &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_X,

      12, //xsize

      12, //yszie

      1,  //x方向放大倍数

      1,  //y方向放大倍数

      (void GUI_CONST_STORAGE *)&GUI_FontHZ12_PropASC

};

3.移植到这步就算移植完成了

举例:

#include”GUI.h”

void main(void)

{

    GUI_Init();

    GUI_SetBkColor(GUI_BLACK);

    GUI_SetColor(GUI_WHITE);

    GUI_Clear();

    GUI_SetFont(&GUI_FontHZ12);

    GUI_DispString(“洋洋kan世界”);

    while(1);

}

实际遇到的问题是:由于SD卡速度有限加上频繁定位读取 ,速度有点慢,在控件中是可以实现的,但是拖动控件中会容易卡死现象。

4,字库的获取方法;

本人用的是字模III v3.91这个软件

用之前需要进行设置;

高级功能-->参数设置-->字模格式

需要设

    

 

    


 

然后选定 《二级汉字库》 再点击 《字库智能生成》,选择源字体,然后记录

字模宽度和高度在GUI_Font12.c进行相应的设置。


 

 


 

然后点击开始转换,会在软件的目录下自动生成Font.bat文件,将其改名为HZ12x12.bin存到SD卡相应的位置。ASC字符同理。

 

到此结束。有问题可以及时联系我QQ18655199 QQ18655199

                                                                                                                                                    2012-11-01

PS:本人第一次写这种教程,尽情见谅,如果不妥之处,欢迎及时指出,本人愿意进行更正解答。

修正上一次的遗留问题,少修改一个文件。

在这里感谢:Eric2013  正点原子 tomyoct 等。。 (排名不分先后)

还有一点希望的是大家多帮我顶顶帖子,别让帖子沉了,让跟多人的受益,以后有机会还会出相关教程

给我一点时间,我会再次证明给你看。
回复

使用道具 举报

  离线 

39

主题

137

帖子

3

精华

高级会员

Rank: 4

积分
802
金钱
802
注册时间
2012-9-21
在线时间
31 小时
发表于 2012-11-4 15:17:31 | 显示全部楼层
回复【楼主位】洋洋kan世界:
---------------------------------
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"

/*********************************************************************
*
*       Static code
*
**********************************************************************
*/
/*********************************************************************
*
*       _GetCharCode
*
urpose:
*   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
*
urpose:
*   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
*
urpose:
*   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
*
urpose:
*   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;
}


此外,GUI_CONST_STORAGE GUI_FONT_PROP GUI_FontHZ12_PropHZ= {
      0xA1A1, //第一个字符
      0xF7FE, //最后一个字符
      &GUI_FontHZ12_CharInfo[1], //字符信息
      (void *)0, 
};中的0XF7FE要改为0xfefe
回复 支持 1 反对 0

使用道具 举报

  离线 

10

主题

66

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2011-1-15
在线时间
3 小时
发表于 2012-11-1 20:00:35 | 显示全部楼层
mark~!一下
回复 支持 反对

使用道具 举报

  离线 

5

主题

166

帖子

2

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2012-10-8
在线时间
0 小时
发表于 2012-11-1 20:03:31 | 显示全部楼层
very nice
回复 支持 反对

使用道具 举报

  离线 

5

主题

166

帖子

2

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2012-10-8
在线时间
0 小时
发表于 2012-11-1 20:12:18 | 显示全部楼层
建议原子哥 给楼主兄弟来个酷吧,毕竟是自己搞出来的,非常值得鼓励,也解决了我一块心病
回复 支持 反对

使用道具 举报

  离线 

485

主题

9万

帖子

30

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
120495
金钱
120495
注册时间
2010-12-1
在线时间
963 小时
发表于 2012-11-1 21:46:19 | 显示全部楼层
cool
回复 支持 反对

使用道具 举报

  离线 

6

主题

19

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2012-10-11
在线时间
0 小时
 楼主| 发表于 2012-11-1 22:04:37 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
呵呵 原子哥来了
给我一点时间,我会再次证明给你看。
回复 支持 反对

使用道具 举报

  离线 

21

主题

433

帖子

0

精华

高级会员

Rank: 4

积分
539
金钱
539
注册时间
2012-8-6
在线时间
0 小时
发表于 2012-11-1 22:16:21 | 显示全部楼层
cool
回复 支持 反对

使用道具 举报

头像被屏蔽

  离线 

275

主题

327

帖子

0

精华

禁止访问

积分
1065
金钱
1065
注册时间
2011-7-7
在线时间
34 小时
发表于 2012-11-2 08:15:05 | 显示全部楼层
回复【4楼】Eric2013:

建议原子哥 给楼主兄弟来个酷吧,毕竟是自己搞出来的,非常值得鼓励,也解决了我一块心病

---------------------------------
shi是  ya 太牛了
回复 支持 反对

使用道具 举报

  离线 

3

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2012-10-21
在线时间
12 小时
发表于 2012-11-2 08:31:23 | 显示全部楼层
很好很强大
回复 支持 反对

使用道具 举报

  离线 

0

主题

4

帖子

0

精华

新手上路

Rank: 1

积分
24
金钱
24
注册时间
2012-11-2
在线时间
0 小时
发表于 2012-11-2 10:27:08 | 显示全部楼层
顶小羊看世界 哈哈哈
回复 支持 反对

使用道具 举报

  离线 

39

主题

137

帖子

3

精华

高级会员

Rank: 4

积分
802
金钱
802
注册时间
2012-9-21
在线时间
31 小时
发表于 2012-11-4 14:51:32 | 显示全部楼层
回复【楼主位】洋洋kan世界:
---------------------------------
楼主,你漏了一处地方,“ GUI_UC_EncodeNone.c”也要修改,否则汉字无法显示,还有偏移计算应该有问题,很多汉字会被pass掉
回复 支持 反对

使用道具 举报

  离线 

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2012-8-28
在线时间
3 小时
发表于 2012-11-4 21:42:17 | 显示全部楼层
Mark.......以后可能用的到
回复 支持 反对

使用道具 举报

  离线 

10

主题

66

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2011-1-15
在线时间
3 小时
发表于 2012-11-4 22:41:38 | 显示全部楼层
mak
回复 支持 反对

使用道具 举报

  离线 

6

主题

19

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2012-10-11
在线时间
0 小时
 楼主| 发表于 2012-11-5 13:08:35 | 显示全部楼层
回复【11楼】tomyoct:
---------------------------------
谢谢你,本教程更新了。
给我一点时间,我会再次证明给你看。
回复 支持 反对

使用道具 举报

  离线 

16

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
123
金钱
123
注册时间
2012-9-23
在线时间
4 小时
发表于 2012-11-12 12:15:57 | 显示全部楼层
mak
回复 支持 反对

使用道具 举报

  离线 

0

主题

3

帖子

0

精华

新手上路

Rank: 1

积分
23
金钱
23
注册时间
2012-11-12
在线时间
0 小时
发表于 2012-11-12 21:28:44 | 显示全部楼层
LZ说要多顶顶,所以我顶了。
其实,我一直都是伸手党(只下资料,从不回复)
回复 支持 反对

使用道具 举报

  离线 

54

主题

966

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1685
金钱
1685
注册时间
2012-11-22
在线时间
207 小时
发表于 2012-11-22 20:54:27 | 显示全部楼层

为啥要命名为bin格式的

态度决定一切 四人行
回复 支持 反对

使用道具 举报

  离线 

52

主题

321

帖子

0

精华

高级会员

Rank: 4

积分
569
金钱
569
注册时间
2012-6-18
在线时间
4 小时
发表于 2012-11-23 12:57:01 | 显示全部楼层

回复 支持 反对

使用道具 举报

  离线 

54

主题

966

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1685
金钱
1685
注册时间
2012-11-22
在线时间
207 小时
发表于 2012-11-25 21:09:39 | 显示全部楼层
回复【楼主位】洋洋kan世界:
---------------------------------
洋洋 
高级功能-->参数设置-->字模格式 
需要设。。。。。
这后面怎么没有截图
应该设置成什么扫描方式呢?

态度决定一切 四人行
回复 支持 反对

使用道具 举报

  离线 

54

主题

966

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1685
金钱
1685
注册时间
2012-11-22
在线时间
207 小时
发表于 2012-11-26 20:55:27 | 显示全部楼层
回复【楼主位】洋洋kan世界:
---------------------------------
我知道了,是横向,正序,嘿嘿。
态度决定一切 四人行
回复 支持 反对

使用道具 举报

  离线 

3

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2012-5-17
在线时间
1 小时
发表于 2012-11-27 12:55:34 | 显示全部楼层
先回复再慢慢看
回复 支持 反对

使用道具 举报

  离线 

2

主题

17

帖子

0

精华

新手上路

Rank: 1

积分
45
金钱
45
注册时间
2012-11-19
在线时间
0 小时
发表于 2012-11-28 06:23:52 | 显示全部楼层
回复【楼主位】洋洋kan世界:
-------------------------------感谢分享
上班时间决定你的现在,业余时间决定你的未来! 贵有恒,何必三更起五更睡;最无益,只怕一日曝十日寒。 ------坚持! 一只在沙漠里的行走的狼!
QQ群:124414160
回复 支持 反对

使用道具 举报

  离线 

42

主题

568

帖子

0

精华

高级会员

Rank: 4

积分
759
金钱
759
注册时间
2010-12-19
在线时间
0 小时
发表于 2012-11-28 08:05:03 | 显示全部楼层
谢谢。。。。。。。。。。
虽然我不属牛,但是我还是希望某一天能够像正点原子一样牛!
回复 支持 反对

使用道具 举报

  离线 

3

主题

47

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2012-5-17
在线时间
1 小时
发表于 2012-12-7 10:53:35 | 显示全部楼层
现在正在弄这个东西,谢谢分享
回复 支持 反对

使用道具 举报

  离线 

12

主题

429

帖子

0

精华

高级会员

Rank: 4

积分
706
金钱
706
注册时间
2012-6-21
在线时间
55 小时
发表于 2012-12-13 09:32:57 | 显示全部楼层
好的。。。。。
呵呵。
回复 支持 反对

使用道具 举报

  离线 

0

主题

4

帖子

0

精华

新手上路

Rank: 1

积分
24
金钱
24
注册时间
2012-9-9
在线时间
0 小时
发表于 2012-12-29 14:14:50 | 显示全部楼层
Cool!~
回复 支持 反对

使用道具 举报

  离线 

0

主题

4

帖子

0

精华

新手上路

Rank: 1

积分
24
金钱
24
注册时间
2012-9-9
在线时间
0 小时
发表于 2013-3-12 18:07:49 | 显示全部楼层
楼主,在成功移植后,做一点点补充。
GUI_UC_EncodeNone.c文件中两个函数,要如下修改:
static U16 _GetCharCode(const char GUI_UNI_PTR * s) {
    if((*s) > 0xA0)
    {
        U16 c = (s[0] << 8) | s[1];
        return c;
    }
    return *(const U8 GUI_UNI_PTR *)s;
}

static int _Encode(char *s, U16 Char) {
    if(Char > 0xA0A0)
    {
        *s++ = (Char >> 8);
        *s++ = (Char & 0xFF);
        return 2;
    }
    *s = (U8)(Char);
    return 1;
}

地址偏移的算法oft = base + (((c>>8) - 0xa1) * 94 + ((c&0xff) - 0xa1)) * BytesPerFont; 
字库的范围 0xA1A1  ~ 0xF7FE
回复 支持 反对

使用道具 举报

  离线 

56

主题

273

帖子

1

精华

高级会员

Rank: 4

积分
723
金钱
723
注册时间
2012-3-29
在线时间
63 小时
发表于 2013-3-14 08:41:45 | 显示全部楼层
谢谢楼主!
回复 支持 反对

使用道具 举报

  离线 

11

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2013-3-11
在线时间
0 小时
发表于 2013-3-15 11:45:34 | 显示全部楼层
顶起
回复 支持 反对

使用道具 举报

  离线 

1

主题

3

帖子

0

精华

新手上路

Rank: 1

积分
27
金钱
27
注册时间
2012-10-15
在线时间
0 小时
发表于 2013-3-16 11:20:22 | 显示全部楼层
楼主,可不可以把你的关于FAT操作的文件发一下啊
回复 支持 反对

使用道具 举报

  离线 

27

主题

147

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
金钱
275
注册时间
2012-8-11
在线时间
0 小时
发表于 2013-3-16 11:57:25 | 显示全部楼层
顶~
回复 支持 反对

使用道具 举报

  离线 

0

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2013-3-16
在线时间
3 小时
发表于 2013-3-16 22:36:12 | 显示全部楼层
顶 正想这个问题着呢
回复 支持 反对

使用道具 举报

  离线 

0

主题

5

帖子

0

精华

新手上路

Rank: 1

积分
25
金钱
25
注册时间
2013-3-24
在线时间
0 小时
发表于 2013-3-25 16:10:47 | 显示全部楼层
不错
回复 支持 反对

使用道具 举报

  离线 

17

主题

80

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
384
金钱
384
注册时间
2012-9-15
在线时间
25 小时
发表于 2013-3-31 17:15:34 | 显示全部楼层
Mark 有用学习了
生活无需多虑
回复 支持 反对

使用道具 举报

  离线 

31

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
296
金钱
296
注册时间
2012-10-27
在线时间
17 小时
发表于 2013-4-3 14:56:55 | 显示全部楼层
COOL
回复 支持 反对

使用道具 举报

  离线 

0

主题

5

帖子

0

精华

新手上路

Rank: 1

积分
25
金钱
25
注册时间
2013-3-24
在线时间
0 小时
发表于 2013-4-14 09:23:21 | 显示全部楼层
GUI加入汉字库
回复 支持 反对

使用道具 举报

  离线 

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2011-8-1
在线时间
3 小时
发表于 2013-5-14 15:55:10 | 显示全部楼层
             有的字显示不出来啊,比如 “件”  ”筑“
回复 支持 反对

使用道具 举报

  离线 

12

主题

429

帖子

0

精华

高级会员

Rank: 4

积分
706
金钱
706
注册时间
2012-6-21
在线时间
55 小时
发表于 2013-5-14 16:58:10 | 显示全部楼层
谢谢。
回复 支持 反对

使用道具 举报

  离线 

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2011-8-1
在线时间
3 小时
发表于 2013-5-15 09:29:47 | 显示全部楼层
而且只能生成12 ,14 像素的字, 之后的16-32 显示全部都是乱码
回复 支持 反对

使用道具 举报

  离线 

42

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
312
金钱
312
注册时间
2013-5-23
在线时间
22 小时
发表于 2013-5-24 11:31:49 | 显示全部楼层
这个必须顶
回复 支持 反对

使用道具 举报

  离线 

20

主题

188

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
288
金钱
288
注册时间
2011-12-14
在线时间
0 小时
发表于 2013-5-24 17:02:06 | 显示全部楼层
好资料,一定顶上去!
回复 支持 反对

使用道具 举报

  离线 

1

主题

2

帖子

0

精华

新手上路

Rank: 1

积分
33
金钱
33
注册时间
2013-6-2
在线时间
3 小时
发表于 2013-6-2 01:25:43 | 显示全部楼层
好资料!谢谢楼主.
但是有个问题,如果在emwin上面能这样修改使用么?
回复 支持 反对

使用道具 举报

  离线 

2

主题

16

帖子

0

精华

新手上路

Rank: 1

积分
44
金钱
44
注册时间
2013-4-8
在线时间
0 小时
发表于 2013-6-3 22:02:35 | 显示全部楼层
值得学习,好东西!
回首不再遥远
回复 支持 反对

使用道具 举报

  离线 

17

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
166
金钱
166
注册时间
2013-3-20
在线时间
0 小时
发表于 2013-7-10 11:35:24 | 显示全部楼层
dingding
回复 支持 反对

使用道具 举报

  离线 

2

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2011-3-10
在线时间
0 小时
发表于 2013-7-22 20:17:07 | 显示全部楼层
回复【楼主位】洋洋kan世界:
---------------------------------
LZ好,那个软件似乎难得找啊,有时间哪位贡献一下呢。。3Q
回复 支持 反对

使用道具 举报

  离线 

20

主题

188

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
288
金钱
288
注册时间
2011-12-14
在线时间
0 小时
发表于 2013-8-17 17:19:29 | 显示全部楼层
感谢楼主,好贴,学习!
回复 支持 反对

使用道具 举报

  离线 

12

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-4-4
在线时间
17 小时
发表于 2013-8-30 15:47:57 | 显示全部楼层
谢谢分享,不错,学习了。。。。
技术的乐趣在于分享。。。。
回复 支持 反对

使用道具 举报

  离线 

12

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
174
金钱
174
注册时间
2013-4-4
在线时间
17 小时
发表于 2013-8-30 21:19:59 | 显示全部楼层
回复【楼主位】洋洋kan世界:
---------------------------------
楼主,,能不能把字模软件发出来啊!网上一直找不到。。。好纠结啊!
技术的乐趣在于分享。。。。
回复 支持 反对

使用道具 举报

  离线 

7

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
156
金钱
156
注册时间
2013-8-24
在线时间
16 小时
发表于 2013-8-30 23:41:18 | 显示全部楼层
顶!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-1-21 09:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */