转载注明出处  方法来自安福莱教程

1: 使用emWin自带小工具生成字库

(1)启动软件 选择4位抗锯齿

(2)根据需求选择字体类型和字体大小

(3)另存为XBF格式

2: 创建XBF字体

  1. #include "DIALOG.h"
  2. #include "font_cn.h"
  3.  
  4. FATFS fatfs;
  5. GUI_FONT XBF_Font;
  6. FIL Fontfile;
  7. FRESULT result;
  8. unsigned int bw;
  9. GUI_XBF_DATA XBF_Data;
  10.  
  11. static int _cbGetData(U32 Off, U16 NumBytes, void * pVoid, void * pBuffer)
  12. {
  13. FIL *FontFile;
  14.  
  15. FontFile = (FIL *)pVoid;
  16.  
  17. result =f_lseek(FontFile, Off);
  18. if (result != FR_OK)
  19. {
  20. return ;
  21. }
  22.  
  23. result = f_read(FontFile, pBuffer, NumBytes, &bw);
  24. if (result != FR_OK)
  25. {
  26. return ;
  27. }
  28. return ;
  29. }
  30.  
  31. static void _ShowXBF(u8 * pname)
  32. {
  33. result=f_mount(&fatfs,(const TCHAR*)pname,);
  34. result = f_open(&Fontfile,(const TCHAR*)pname,FA_OPEN_EXISTING|FA_READ|FA_OPEN_ALWAYS);
  35. if(result != FR_OK)
  36. { return; }
  37.  
  38. GUI_XBF_CreateFont(&XBF_Font, // Pointer to GUI_FONT structure in RAM
  39. &XBF_Data, // Pointer to GUI_XBF_DATA structure in RAM
  40. GUI_XBF_TYPE_PROP_AA4_EXT, // Font type to be created
  41. _cbGetData, // Pointer to callback function
  42. &Fontfile // Pointer to be passed to GetData function
  43. );
  44. }
  45.  
  46. void Font_Init(u8 * pname)
  47. {
  48. _ShowXBF(pname);
  49. GUI_UC_SetEncodeUTF8();
  50. }

3: 使用文字小工具创建 TEXT

  1. Font_Init("0:/FONT/KoPu.xbf");
  2.  
  3. hItem=TEXT_CreateEx( , ,ICON_TEXT_SIZE_X,ICON_TEXT_SIZE_Y,,WM_CF_SHOW,TEXT_CF_HCENTER,GUI_ID_TEXT0, "IO输出");
  4. TEXT_SetTextColor(hItem, GUI_DARKBLUE);
  5. TEXT_SetFont(hItem,&XBF_Font);

这里特别注意的是 文件的编码格式选择UTF-8编码 要不显示会乱码

IAR环境下设置文件编码的方法:

第一种方法:菜单Toos->Options->Editor

第二种方法:在编辑器的编辑区点右键”Character Encoding“选项, 选择“Convert to UTF-8”

STemWin显示汉字 — SD卡外挂XBF字库的更多相关文章

  1. Android_(控件)使用ListView显示Android系统SD卡的文件列表_02

    使用ListView显示Android SD卡中的文件列表 父类布局activity_main.xml,子类布局item_filelayout(一个文件的单独存放) 运行截图: 程序结构 <?x ...

  2. Android_(控件)使用ListView显示Android系统中SD卡的文件列表

    使用ListView显示Android SD卡中的文件列表 父类布局activity_main.xml,子类布局line.xml(一个文件的单独存放) 运行截图: 程序结构: <?xml ver ...

  3. STM32 Unicode 与 GBK 转换 .bin文件放到SD卡是啥意思

    2个数组 : }; }; 一个是Unicode 编码,一个是GBK编码: 用c2b软件转成.bin 二进制文件放到SD卡里: SD卡放入字库 .FON STM32 代码: 代码中SD卡字库和二进制路径 ...

  4. [不好分类]SD卡无法读取,显示RAW

    上周同事拿来了一个8G的SD卡,插入读卡器后显示“需要格式化”.无法读取.文件格式处显示“RAW”,磁盘大小显示0字节. 处理步骤如下: 1.按照提示,格式化,选择“快速格式化”. 2.采用数据恢复软 ...

  5. Android相机、相册获取图片显示并保存到SD卡

    Android相机.相册获取图片显示并保存到SD卡 [复制链接]   电梯直达 楼主    发表于 2013-3-13 19:51:43 | 只看该作者 |只看大图  本帖最后由 happy小妖同学 ...

  6. MVP+RXJAVA+RecyclerView实现sd卡根目录下的所有文件中的照片加载并显示

    初学Rxjava,目前只能遍历加载指定目录下的所有文件夹中的照片,文件夹中如果还嵌套有文件夹目前还没找到实现方法. 先看mvp目录结构: 很抱歉,没有model. 接下来是view层的接口代码和pre ...

  7. android 二维码制作,显示到UI,并保存SD卡,拿来就能用!!

    转载请注明出处:王亟亟的大牛之路 如今二维码已经渗透了我们的生活.各种扫码关注啊.扫码下载的,今天上一个依据输入内容生成二维码的功能. 包结构: 界面截图: 功能:输入网址–>生成图片–> ...

  8. 发送广播重新挂载SD卡,使图库可以及时显示自己保存的图片(无需手机重启)

    我们或许经常会遇到这种情况,明明保存了图片,但是当你打开图片时,却没有找到这张图片,手机重启之后才能看到.这是因为SD卡并没有重新挂载,图库也无法把这张图片加载进去,解决这个问题非常简单,只需要我们模 ...

  9. system权限无法访问外挂SD卡

    总结Android应用system权限无法访问SD卡问题 包括android1.6 解决方案http://hi.baidu.com/yunlongchn/item/7d6636d8547317ffca ...

随机推荐

  1. SQL 语句基础

    一 查询常量1. SELECT 学生编号, 学生姓名,性别 FROM tb_Student2. SELECT 学生姓名 AS 姓名, 性别 AS 学生性别 FROM tb_Student3. SELE ...

  2. linux中sed中用s 替换中遇到的问题

    sed替换时候不能用-n,只输出替换的行,为什么???? 比如: sed "2,4s/\"//g" /var/lib/status     #可以输出 但是: sed - ...

  3. Openfire 4.1.2 DOWNLOADS

    DOWNLOADS  Source Code Openfire 4.1.2 http://www.igniterealtime.org/downloads/ http://download.ignit ...

  4. CocoaAsyncSocket使用笔记

    先去github的站点下载最新的包,然后先看看介绍. 写的比較具体了 https://github.com/robbiehanson/CocoaAsyncSocket/wiki/Intro_GCDAs ...

  5. AngularJS取得后台Jason数据显示在页面上

    代码下载:https://files.cnblogs.com/files/xiandedanteng/angularjsAjax.rar 前台代码: <%@ page language=&quo ...

  6. win下配置java环境变量

    系统变量→新建 JAVA_HOME 变量 . 变量值填写jdk的安装目录(本人是 E:\Java\jdk1.7.0)  系统变量→寻找 Path 变量→编辑 在变量值最后输入 %JAVA_HOME%\ ...

  7. bat文件转换为exe文件

    批处理文件转换为exe文件(简单的处理文件),点击下载 使用超简单的了,不多说.

  8. VC6 在使用VC助手(Visual AssistX)在Win7下不能使用↑↓←→及回车键选择的解决的方法

    VC6使用Visual AssistX版本号的问题,换一个版本号.如"Visual Assist X 10.8.2029"就可以解决. http://pan.baidu.com/w ...

  9. vue2.0 仿手机新闻站(一)项目开发流程

    vue仿手机新闻站: 1.拿到静态页面,直接用vue边布局,边写 2.假数据 没有用任何UI组件,切图完成 做项目基本流程: 1.规划组件结构 Nav.vue Header.vue Home.vue ...

  10. SQLserver字符串分割函数

    一.按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果.CREATE function Get_StrArrayLength(  @s ...