OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 19038|回复: 83

UCGUI添加外置字库到SD卡(附字库)

[复制链接]

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
发表于 2013-9-21 12:37:38 | 显示全部楼层 |阅读模式
    前天刚刚把原子哥的汉字显示实验看完,并且成功的将字库及FATFS的cc936.c文件装到SD卡,昨天又开始研究将UCGUI的汉字库装到SD卡里,为此上网查了许多资料。
    最开始我用的是论坛里坛友---洋洋kan世界的方法,但是显示出来的汉子不太好,汉子中间有一横线,(可能是自己移植的不太好吧,还有跟字库有很大的关系),因此自己又上网查找相关的解决办法,终于找到了办法,思路和
坛友---洋洋kan世界的差不多。这次添加外置字库,最大的问题就是字库的获取上,我的大部分时间也是浪费在这上面的。
    辛苦了一天的成果,在这里拿出来和大家分享,希望对那些打算将UCGUI的汉字库放在SD卡的朋友们有帮助吧。
步骤如下:
(下面附件有修改好的相关代码文件)
1.
GUIType.h(该文件在)文件里添加如下内容:
DECLARE_FONT(PROP_X);
#define GUI_FONTTYPE_PROP_USER       \
  GUIPROP_X_DispChar,             \
        GUIPROP_X_GetCharDistX,         \
        GUIMONO_GetFontInfo,          \
        GUIMONO_IsInFont,             \
  (tGUI_ENC_APIList*)0
注意:该内容不能放在太靠前的位置,这里我把它放在“/* PROPAA: Proportional, antialiased fonts, 2bpp, SJIS encoding */”的前面。
2.将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
*
* 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(void) {
  GUI_LOCK();
  GUI_Context.pUC_API = &GUI__API_TableNone;
  GUI_UNLOCK();
}

/*************************** End of file ****************************/
3.新建文件GUICharPEx.c文件,并且将它加入工程,
其内容如下:
#include <stddef.h>           /* needed for definition of NULL */
#include "GUI_Private.h"
#include "ff.h"
#include "malloc.h"
/*********************************************************************
*
*       Static code
*
**********************************************************************
*/
//字模数据的暂存数组,以单个字模的最大字节数为设定值
#define BYTES_PER_FONT      128
static U8 GUI_FontDataBuf[BYTES_PER_FONT];
extern void GUI_X_GetFontData(char *font, U32 oft, U8 *ptr, U8 bytes);
//从外部存储器取得字模数据 
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 * BytesPerFont;
    }
    else                                                                          
    {
         oft = ((((c >> 8)-0xA1)) + ((c & 0xFF)-0xA1) * 94)* BytesPerFont;                                                //中文字符地址偏移算法包括符号
    }
    GUI_X_GetFontData(font, oft, GUI_FontDataBuf, BytesPerFont);
}
/*********************************************************************
*
*       Public code
*
**********************************************************************
*/
/*********************************************************************
*
*       GUIPROP_DispChar
*
* Purpose:
*   This is the routine that displays a character. It is used by all
*   other routines which display characters as a subroutine.
*/
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;
}
/*---------------------------------------------------------------------------*/
/*字库外部函数部分-----------------------------------------------------------*/
void GUI_X_GetFontData(char* font, U32 oft, U8 *ptr, U8 bytes)
{
    FIL *fsrc;        // 定义文件操作类 
    FRESULT res;         // 定义操作结果变量 
    UINT br;         // 定义读写数量变量
    fsrc=(FIL*)mymalloc(SRAMIN,sizeof(FIL));     
    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);                                //关闭字体
myfree(SRAMIN,fsrc);
}
4.接下来就是新建三个自己的与字体相关的文件,分别是:GUI_Font12.c,GUI_Font14.c,GUI_Font16.c,并且将它们加入工程
GUI_Font12.c内容如下:
注意:下述代码的字库在SD卡的路径(
SD卡卷标为0,且"
SYSTEM"文件夹为SD卡根目录下的文件夹
)
#include "GUI.h"
/*
****************************************
*
*说明:GUI_FontHZ12.C文件
*
*By:ailson jack
*
*Date:2013.09.21
*****************************************
*/
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 *)"0:SYSTEM/FONT/GUI_ASC12.gui"},//&ASC_ROM_6X12 字库的路径
    { 12,12,2, (void*) "0:SYSTEM/FONT/GUI_HZ12.gui"}, //&HZ_ROM_12X12字库的路径
};
GUI_CONST_STORAGE GUI_FONT_PROP GUI_FontHZ12_PropHZ= {
      0xA1A1, //第一个字符
      0xFEFE, //最后一个字符
      &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, //yszie
      1,  //x方向放大倍数
      1,  //y方向放大倍数
      (void GUI_CONST_STORAGE *)&GUI_FontHZ12_PropASC
};
至于
GUI_Font14.c,GUI_Font16.c,的内容,可查看下面的附件。
至此,UCGUI的外置字库添加完成.
然后可在main()函数所在的文件里面输入:
extern GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ12;
extern GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ14;
extern GUI_CONST_STORAGE  GUI_FONT GUI_FontHZ16;
再在main()函数里面输入如下代码(只是部分代码,相关初始化什么的就自己去弄吧):
GUI_SetFont(&GUI_FontHZ16);
GUI_DispStringAt("UC/GUI外置字库",30,30);
GUI_DispStringAt("---2013.09.21",81,50);
GUI_SetFont(&GUI_Font8x16);
GUI_DispStringAt("AILSON JACK",60,90);
GUI_SetFont(&GUI_FontHZ12);
GUI_DispStringAt("MCU的世界,你值得探索!!!(12x12)",3,120);
GUI_SetFont(&GUI_FontHZ14);
GUI_DispStringAt("MCU的世界,你值得探索!!!(14x14)",3,140);
GUI_SetFont(&GUI_FontHZ16);
GUI_DispStringAt("MCU的世界,你值得探索!!!(16x16)",3,160);
GUI_SetFont(&GUI_FontHZ16);
移植不是随便编的,有图有真相哦,其效果图如下:


好了,至此,应该就完成了UCGUI添加外置字库到SD卡的全过程。
附件在此:

GUI_Font14.c

1.01 KB, 下载次数: 1287

GUI_Font16.c

1.2 KB, 下载次数: 1213

GUI_Font12.c

1.12 KB, 下载次数: 2511

GUI_UC_EncodeNone.c

3.42 KB, 下载次数: 1217

GUICharPEx.c

4.93 KB, 下载次数: 598

GUIType.h

12.74 KB, 下载次数: 1894

一言一行一字一句一心一意一生一世
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2013-9-21 12:41:47 | 显示全部楼层
一楼是我的哦,
还是那句话,
这是我忙碌了一天的成果,希望各位帮忙顶顶帖子,不要让帖子及我的辛苦白费,以便让更多有需要的人了解到!
我先顶啊!!!
注:
SYSTEM.rar是SD卡根目录下的字库。直接将其解压,然后将解压得到的文件夹拷贝到SD卡的根目录下即可。
字库在此:

UCGUI外置字库.rar

367.72 KB, 下载次数: 2254

UCGUI.rar

1.96 MB, 下载次数: 2509

SYSTEM.rar

367.77 KB, 下载次数: 2023

一言一行一字一句一心一意一生一世
回复 支持 1 反对 0

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2013-9-21 15:26:45 | 显示全部楼层
好东西,帮顶!!!
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

13

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2013-8-3
在线时间
1 小时
发表于 2013-9-23 22:36:42 | 显示全部楼层
楼主威武啊!
回复 支持 反对

使用道具 举报

17

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
181
金钱
181
注册时间
2013-10-9
在线时间
0 小时
发表于 2013-10-11 16:56:29 | 显示全部楼层
你有横线是因为那个字库生成软件没破解,我现在是能外带字库,但是原来工作中的BUTTON等控件中的字开始错乱了!
回复 支持 反对

使用道具 举报

4

主题

10

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2013-10-10
在线时间
0 小时
发表于 2013-10-11 18:55:50 | 显示全部楼层
我也是控件汉字显示有问题。我的字库是外置SPI Flash,ugGUI按钮控件可以显示中文。但是只要通过触摸屏,一按这个按钮,弹出对话框,按钮上中文就不见了。感觉是弹出对话框或切换到下一界面时,有对屏幕刷新似的。复位后有正常了。
是不是还有哪些地方还有修改?请大家帮忙,不甚感激!
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2013-10-18
在线时间
0 小时
发表于 2013-10-18 15:54:38 | 显示全部楼层
简直太感谢了,之前也是字库太大,没法全部加进去,只能用什么 字加什么字,这样好多了
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2013-10-24
在线时间
9 小时
发表于 2013-10-24 14:16:12 | 显示全部楼层
谢谢了
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2013-10-24
在线时间
9 小时
发表于 2013-10-24 15:02:22 | 显示全部楼层
楼主 可以把整个工程发给我一份吗 我按照你这个步骤弄了 我编译没有错 可以运行结果有点问题 请楼主给我发一份吧 ,我的邮箱是 315466405@qq.com谢谢了
回复 支持 反对

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2013-10-24 18:39:43 | 显示全部楼层
抱歉,我那个程序在我实验室的电脑里,等我明天后天有空了再发给你,你再仔细查一查吧
一言一行一字一句一心一意一生一世
回复 支持 反对

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2013-10-24 18:40:00 | 显示全部楼层
回复【9楼】dfl448866:
---------------------------------
抱歉,我那个程序在我实验室的电脑里,等我明天或后天有空了再发给你,你再仔细查一查吧
一言一行一字一句一心一意一生一世
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2013-10-24
在线时间
9 小时
发表于 2013-10-24 19:21:27 | 显示全部楼层
好的
回复 支持 反对

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2013-10-25 22:29:24 | 显示全部楼层
回复【12楼】dfl448866:
---------------------------------
1楼附件2,看一下可以不
一言一行一字一句一心一意一生一世
回复 支持 反对

使用道具 举报

14

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2013-7-24
在线时间
0 小时
发表于 2013-11-8 20:29:52 | 显示全部楼层
回复【2楼】jackailson:
----------------------------你好 你用的是mini还是战舰 另外源程序能否分享一下。。 我移植了好几天了 汉字一直无进展
回复 支持 反对

使用道具 举报

14

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2013-7-24
在线时间
0 小时
发表于 2013-11-8 20:29:58 | 显示全部楼层
回复【2楼】jackailson:
----------------------------你好 你用的是mini还是战舰 另外源程序能否分享一下。。 我移植了好几天了 汉字一直无进展
回复 支持 反对

使用道具 举报

17

主题

466

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2164
金钱
2164
注册时间
2013-1-11
在线时间
510 小时
发表于 2013-11-8 22:05:38 | 显示全部楼层
支持一下
回复 支持 反对

使用道具 举报

14

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2013-7-24
在线时间
0 小时
发表于 2013-11-9 11:21:36 | 显示全部楼层
回复【楼主位】jackailson:
---------------------------------
你能够留个联系方式,或者把工程发我一份吗 我需要文件系统那部分的参照 
我qq 675413725
 邮箱675413725@qq.com

万分感谢 大神
回复 支持 反对

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2013-11-9 19:10:59 | 显示全部楼层
回复【17楼】stm32新0912030134:
---------------------------------
我用的是战舰,1楼附件2是完整地程序,看一下可以不
一言一行一字一句一心一意一生一世
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2013-9-10
在线时间
1 小时
发表于 2013-11-30 21:30:49 | 显示全部楼层
            不错,不错
回复 支持 反对

使用道具 举报

1

主题

18

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2012-12-30
在线时间
0 小时
发表于 2013-12-10 23:17:51 | 显示全部楼层
楼主,我用你的程序下载到我的战舰板上怎么没显示汉字呢?可以显示ALLSON JACK而已,求指导哦!
回复 支持 反对

使用道具 举报

15

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
396
金钱
396
注册时间
2013-7-12
在线时间
64 小时
发表于 2013-12-11 17:21:14 | 显示全部楼层

请问楼主,为何我打开工程 里面的文件都是X,都没添加上,还要再添加一遍?
提供工业物联网整体解决方案!
https://shop469761648.taobao.com/?spm=2013.1.0.0.3e0568ccstLyMK
回复 支持 反对

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2013-12-11 20:09:02 | 显示全部楼层
回复【21楼】zxcmcu:
---------------------------------
你重新编译一下,应该就可以了
一言一行一字一句一心一意一生一世
回复 支持 反对

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2013-12-11 20:13:39 | 显示全部楼层
回复【20楼】不后悔wk:
---------------------------------
你的SD卡里的字库,和我描述的存储路径一样么?
一言一行一字一句一心一意一生一世
回复 支持 反对

使用道具 举报

1

主题

18

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2012-12-30
在线时间
0 小时
发表于 2013-12-11 22:58:56 | 显示全部楼层
回复【23楼】jackailson:
---------------------------------
是的,我把那6个字库文件放在SYSTEM里面FONT文件夹,然后SD卡的名也改为“0”了,还是没能显示汉字的,我同学拿我SD卡去放到他mini板的GUI程序又可以显示汉字哦,但他的程序跟战舰有点不一样的,郁闷哦
回复 支持 反对

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2013-12-12 10:29:38 | 显示全部楼层
回复【24楼】不后悔wk:
---------------------------------
你看一下1楼 附件3, 直接将其解压,然后将解压得到的文件夹拷贝到SD卡的根目录下。你先试一试吧
一言一行一字一句一心一意一生一世
回复 支持 反对

使用道具 举报

15

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
396
金钱
396
注册时间
2013-7-12
在线时间
64 小时
发表于 2013-12-12 10:38:23 | 显示全部楼层
重新编译就是提示这些文件不存在,需要我再添加一遍,楼主下载试试看?
提供工业物联网整体解决方案!
https://shop469761648.taobao.com/?spm=2013.1.0.0.3e0568ccstLyMK
回复 支持 反对

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2013-12-12 10:58:58 | 显示全部楼层
回复【26楼】zxcmcu:
---------------------------------
我用的KEIL4编译的这个工程,要不你重新下载工程文件,然后换成KEIL4来编译,看看行不?
一言一行一字一句一心一意一生一世
回复 支持 反对

使用道具 举报

15

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
396
金钱
396
注册时间
2013-7-12
在线时间
64 小时
发表于 2013-12-12 13:11:05 | 显示全部楼层


重新下载了,keil4打开是这样的??无语了

提供工业物联网整体解决方案!
https://shop469761648.taobao.com/?spm=2013.1.0.0.3e0568ccstLyMK
回复 支持 反对

使用道具 举报

7

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2013-8-11
在线时间
0 小时
发表于 2013-12-12 14:19:57 | 显示全部楼层
lz,你那个.gui是个神魔文件类型,是神魔样的格式
没有学不会的事情
回复 支持 反对

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2013-12-12 22:56:03 | 显示全部楼层
回复【29楼】969813073@qq.com:
---------------------------------
那是我随便定的后缀,你也可以去掉它
一言一行一字一句一心一意一生一世
回复 支持 反对

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2013-12-12 22:57:11 | 显示全部楼层
回复【28楼】zxcmcu:
---------------------------------
你把工程不放到桌面上,放到其他的盘里,试一试
一言一行一字一句一心一意一生一世
回复 支持 反对

使用道具 举报

1

主题

18

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2012-12-30
在线时间
0 小时
发表于 2013-12-13 00:52:41 | 显示全部楼层
回复【25楼】jackailson:
---------------------------------
还是显示不得汉字,我找另外一块战舰板来试了也不得,但是把SD卡放过他们mini板去又得,好奇怪啊
回复 支持 反对

使用道具 举报

7

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2013-8-11
在线时间
0 小时
发表于 2013-12-13 17:20:48 | 显示全部楼层
回复【30楼】jackailson:
---------------------------------
楼主,我那个keil打开你的文件和上面那个哥们一样,没有添加文件。。。。。
没有学不会的事情
回复 支持 反对

使用道具 举报

1

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2013-3-3
在线时间
101 小时
发表于 2013-12-13 19:45:06 | 显示全部楼层
不错的资料,学习了。
回复 支持 反对

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2013-12-14 21:23:40 | 显示全部楼层
回复【32楼】不后悔wk:
---------------------------------
这个我就不知道了,我的这个没问题啊,他们下载的那些人也没遇到这个问题,要不你再检查检查,应该是哪儿出问题了
一言一行一字一句一心一意一生一世
回复 支持 反对

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2013-12-14 21:25:15 | 显示全部楼层
回复【33楼】969813073@qq.com:
---------------------------------
你的是KEIL4么?如果你的电脑不行,你用其他人的电脑试一下
一言一行一字一句一心一意一生一世
回复 支持 反对

使用道具 举报

15

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
396
金钱
396
注册时间
2013-7-12
在线时间
64 小时
发表于 2013-12-27 11:45:34 | 显示全部楼层
没办法,用别人的电脑下载还是老样子,文件都没添加,汗!只好硬着头皮自己再添加了一遍,废了我好几十分钟啊...
提供工业物联网整体解决方案!
https://shop469761648.taobao.com/?spm=2013.1.0.0.3e0568ccstLyMK
回复 支持 反对

使用道具 举报

15

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
396
金钱
396
注册时间
2013-7-12
在线时间
64 小时
发表于 2013-12-27 12:02:47 | 显示全部楼层
请教,jack兄,目前我所见的ucgui下的汉字显示方法有以下几种:
1:使用ucgui_font这个软件生成字库,比较简单,但是很占用stm32的flash
2:你的方法将字库存入外部的SD卡,当然使用FATFS来操作
3:还有就是原子哥的方法,将字库存入外部的SPI FLASH ,直接读取,不使用FATFS等文件系统,当然此方法可能速度比较快,但是不是在ucgui下

某些时候,可能我们的板子并不需要外部的SD,但是存在外部的FLASH,所以在使用ucgui时,就把字库放入 FLASH比较方便(不知需不需要FATFS?),但是目前没见论坛上有这样做的,jack兄是否做过,
可以分享下吗?或者其他的兄弟有做过吗?分享下代码,以备我等只菜鸟学习,呵呵
提供工业物联网整体解决方案!
https://shop469761648.taobao.com/?spm=2013.1.0.0.3e0568ccstLyMK
回复 支持 反对

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2013-12-27 13:04:58 | 显示全部楼层
回复【38楼】zxcmcu:
---------------------------------
放到外部FLASH也是可以的,要用文件系统,把我那个程序改一改,应该就可以了,你用我的程序试一试吧
一言一行一字一句一心一意一生一世
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2014-1-19
在线时间
1 小时
发表于 2014-1-20 17:39:42 | 显示全部楼层
我想问一下楼主字库文件时怎么生成的?
回复 支持 反对

使用道具 举报

14

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2013-4-30
在线时间
0 小时
发表于 2014-1-20 20:59:59 | 显示全部楼层
值得学习。
回复 支持 反对

使用道具 举报

53

主题

608

帖子

0

精华

高级会员

Rank: 4

积分
890
金钱
890
注册时间
2013-3-29
在线时间
18 小时
发表于 2014-1-20 21:46:49 | 显示全部楼层
我得试试。
回复 支持 反对

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2014-1-31 12:58:57 | 显示全部楼层
回复【40楼】froxy:
---------------------------------
我的字库是在网上找的,网上也有生成字库的软件,你可以找找
一言一行一字一句一心一意一生一世
回复 支持 反对

使用道具 举报

头像被屏蔽

38

主题

382

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2012-12-5
在线时间
19 小时
发表于 2014-2-3 22:13:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

51

主题

1455

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2613
金钱
2613
注册时间
2011-1-25
在线时间
176 小时
发表于 2014-2-3 22:49:24 | 显示全部楼层
好贴,顶起。
一直努力就很好。
回复 支持 反对

使用道具 举报

头像被屏蔽

38

主题

382

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2012-12-5
在线时间
19 小时
发表于 2014-2-16 22:15:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

38

主题

382

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2012-12-5
在线时间
19 小时
发表于 2014-2-17 12:36:21 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

38

主题

382

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2012-12-5
在线时间
19 小时
发表于 2014-2-17 12:43:55 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

38

主题

382

帖子

0

精华

高级会员

Rank: 4

积分
596
金钱
596
注册时间
2012-12-5
在线时间
19 小时
发表于 2014-2-18 13:23:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

15

主题

94

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
371
金钱
371
注册时间
2012-11-8
在线时间
7 小时
 楼主| 发表于 2014-2-19 17:47:12 | 显示全部楼层
回复【44楼】toddchen:
---------------------------------
6000多个字,对于普通应用应该够用了。
如果要用原子的GBK,这个应该要改变扫面方式吧,我许久没碰UCGUI了,哥们可以自己研究研究
一言一行一字一句一心一意一生一世
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 10:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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