STemWin显示汉字 — SD卡外挂XBF字库

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

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

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

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

(3)另存为XBF格式

2: 创建XBF字体

#include "DIALOG.h"
#include "font_cn.h"

FATFS fatfs;
GUI_FONT XBF_Font;
FIL Fontfile;
FRESULT  result;
unsigned int bw;
GUI_XBF_DATA XBF_Data; 

static int _cbGetData(U32 Off, U16 NumBytes, void * pVoid, void * pBuffer)
{
  FIL *FontFile;

  FontFile = (FIL *)pVoid;

  result =f_lseek(FontFile, Off);
  if (result != FR_OK)
  {
    return 1;
  }

  result = f_read(FontFile, pBuffer, NumBytes, &bw);
  if (result != FR_OK)
  {
    return 1;
  }
  return 0;
}

static void _ShowXBF(u8 * pname)
{
  result=f_mount(&fatfs,(const TCHAR*)pname,0);
  result = f_open(&Fontfile,(const TCHAR*)pname,FA_OPEN_EXISTING|FA_READ|FA_OPEN_ALWAYS);
  if(result != FR_OK)
  { return; }

  GUI_XBF_CreateFont(&XBF_Font,                 // Pointer to GUI_FONT structure in RAM
                     &XBF_Data,                 // Pointer to GUI_XBF_DATA structure in RAM
                     GUI_XBF_TYPE_PROP_AA4_EXT, // Font type to be created
                     _cbGetData,                // Pointer to callback function
                     &Fontfile                  // Pointer to be passed to GetData function
                     );
}  

void Font_Init(u8 * pname)
{
   _ShowXBF(pname);
   GUI_UC_SetEncodeUTF8();
}

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

Font_Init("0:/FONT/KoPu.xbf");

  hItem=TEXT_CreateEx( 37, 160,ICON_TEXT_SIZE_X,ICON_TEXT_SIZE_Y,0,WM_CF_SHOW,TEXT_CF_HCENTER,GUI_ID_TEXT0, "IO输出");
  TEXT_SetTextColor(hItem, GUI_DARKBLUE);
  TEXT_SetFont(hItem,&XBF_Font);

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

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

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

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

时间: 2024-08-02 12:58:09

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

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

使用ListView显示Android SD卡中的文件列表 父类布局activity_main.xml,子类布局item_filelayout(一个文件的单独存放) 运行截图: 程序结构 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="

android 解决传送中文名文件到模拟器SD卡中

RT,android adb push命令解决中文名文件,把电脑本地的文件导入到Android模拟器AVD的SD卡中 1.通过adb push命令 PS:windows下不稳定,试了下中文名文件能传过去,但文件名为空,linux下可以.若win下该方法不行,参考第二种方法.字幕数字文件名不必说了,肯定没问题. 通过adb push,则可将文件添加到SD卡中.如果想在push的时候修改文件名称的话,只需要修改push的第二个参数改成完整路径(目录+文件名),如E:/videos/welcom.mp

从SD卡读图并显示(一)

本节,我们做一个很简单的Demo,实现从SD卡读取一张图片,并把它显示在APP中. 分三步: 1.设置权限. 在Manifest文件中添加三行权限信息. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS&qu

安卓 SD卡写入文件后不能立即显示被写入的文件解决方法

每次通过输出流往SD卡写入文件,连接上电脑,用MTP的方式模拟一个移动磁盘,打开磁盘却没有这样一个文件,而通过adb的方式查看就有,造成这个现象的原因是,每次写入之后,MTP的数据库并没有更新,因为更新一次MTP数据库需要的带价比较大,所以只有在重启,挂载和用户手动发送Intent出发,故存入文件后需要手动发送Intent广播,出发一下MTP数据库的更新. /** * 出发扫描 mtp下的文件,在保存文件到 sd卡下后,不能显示,故这里触发一下扫描机制,让手机连上电脑后,就可以读出文件了 * @

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

初学Rxjava,目前只能遍历加载指定目录下的所有文件夹中的照片,文件夹中如果还嵌套有文件夹目前还没找到实现方法. 先看mvp目录结构: 很抱歉,没有model. 接下来是view层的接口代码和presenter层的接口代码 public interface IImgsView { void onImgsLoadCompleted(ArrayList<String> imgs); } public interface IImgsPresenter { void getImages(File[]

Android相机、相册获取图片显示(压缩)并保存到SD卡

做过类似需求的同学都知道,在Activity中通过如下代码可以启动相机,然后在重写的onActivityResult方法中可以获取到返回的照片数据: Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(openCameraIntent, TAKE_PICTURE); 在onActivityResult方法里通过Intent的getData方法获取的数据转换成bi

SD卡在电脑中显示RAW格式该怎么修复?

为什么SD卡在电脑显示RAW格式,无法打开,那该如何提取里面的数据?还能找回来吗?请继续阅读本篇文章. 当SD卡电脑读取后,发现SD卡RAW故障现象出现,这样的情况有可能是SD卡内部扇区或者芯片损坏导致的,显示该卡需要格式化,否则无法使用?SD卡接入电脑后无法识别的话,点击桌面上的"我的电脑"或是"计算机"右键,弹出的菜单选择"管理"跳出新窗口后,点击左下的"磁盘管理"然后看右下位置有没有找到一个可移动介质,如果没有说明完全识

使用FreeRTOS在SD卡驱动使用非系统延时导致上电重启不工作的情况

一.问题描述在一个使用FreeRTOS的工程中,只做了SD卡的驱动,由于RTOS使用了Systick,故非系统延时函数使用的是 DWT中的时钟周期(CYCCNT)计数功能,但是在SD卡驱动中使用了这个非系统延时导致,烧写程序后板子工作正常,而下电再上电后板子无反应,分析排查去掉了这个非系统延时后工作正常. 二.使用环境1)开发环境使用的是MDK5.20,下载器为JLINK:2)软件工程是V6的FreeRTOS模板工程,SD卡驱动也是V6的,非系统延时函数所在文件为V6的 bsp_dwt.c:3)

制作SD(8G)卡Linux镜像,使得ZC706开发板可以从SD卡启动进入Linux系统

转自网络,供学习记录使用,红色部分是我实验时,这篇文章和网站稍有出入的地方. 目的:制作SD(8G)卡Linux镜像,使得ZC706开发板可以从SD卡启动进入Linux系统 在http://wiki.analog.com/resources/eval/user-guides/ad-fmcomms2-ebz/quickstart/zynq(姑且把这个链接成为链接1吧)链接中找到 图1 点击绿色字体的链接,下载镜像原始文件.这里有不同时期的版本,本说明中选择 图2 下载的原始文件为:2014_R2-