原标题:如何用STM32的片内Flash存储中文字库

在 中,成本往往是敏感的,如果你的Flash足够大,就可以省去片外Flash,我用结构体实现了该功能,并分享给广大网友,最后附有下载链接。

在fonts.h中:

typedef struct _tFont

{

const uint16_t *table;

uint16_t Width;

uint16_t Height;

} sFONT;

extern sFONT Font8x8;

extern sFONT Font8x12_bold;

extern sFONT Font8x12;

extern sFONT Font12x12;

extern sFONT Font16x24;

#define GL_Font8x8 Font8x8

#define GL_Font8x12_bold Font8x12_bold

#define GL_Font8x12 Font8x12

#define GL_Font12x12 Font12x12

#define GL_Font16x24 Font16x24

在fonts.c中

const uint16_t ASCII16x24_Table []={………………}; //字模

sFONT Font16x24 = {

ASCII16x24_Table,

16,

24,

};

sFONT Font12x12 = {

ASCII12x12_Table,

12,

12,

};

sFONT Font8x12 = {

ASCII8x12_Table,

8,

12,

};

sFONT Font8x12_bold ={

ASCII8x12_bold_Table,

8,

12,

};

sFONT Font8x8 = {

ASCII8x8_Table,

8,

8,

};

在main.c中调用:

#include "user_config.h"

uint8_t test1[]="你见,或者不见我,我就在那里,不悲不喜;";

uint8_t test2[]="你念,或者不念我,我就在那里,不来不去;";

uint8_t test3[]="你爱,或者不爱我,爱就在那里,不增不减;";

uint8_t test4[]="你跟,或者不跟我,我的手就在你手里,";

uint8_t test5[]="不舍 不弃.";

uint8_t test6[]="默然 相爱";

uint8_t test7[]="寂静 喜欢";

int main(void)

{

u8 i,j,k;

NVIC_Config();

SysTick_Init();

STM_EVAL_Init(LED1);

STM_EVAL_LEDInit(LED2);

STM_EVAL_LEDInit(LED3);

STM_EVAL_LEDInit(LED4);

USART_Config( COM1,115200);

10E_LCD_Init();

LCD_Clear(LCD_COLOR_MAGENTA);

LCD_SetColors(LCD_COLOR_RED,LCD_COLOR_CYAN);

LCD_DisplayStringLine(LCD_LINE_0, (uint8_t *)MESSAGE1);

LCD_DisplayStringLine(LCD_LINE_1, (uint8_t *)MESSAGE2);

LCD_DisplayStringLine(LCD_LINE_2, (uint8_t *)MESSAGE3);

LCD_DisplayStringLine(LCD_LINE_3, (uint8_t *)MESSAGE4);

printf("nr %s", MESSAGE1);

printf(" %s", MESSAGE2);

printf(" %snr", MESSAGE3);

LCD_Clear(LCD_COLOR_BLUE);

GL_Clear(GL_Grey);

GL_SetTextColor(GL_Blue);

GL_SetBackColor(GL_Yellow);

GL_SetFont(GL_FONT_GB2312);

LCD_ClearLine(LINE(0)); // disp yellow line

LCD_ClearLine(LINE(9));

GL_DisplayAdjStringLine(0,220,(uint8_t*)"Loading...",GL_FALSE);

GL_DisplayAdjStringLine(LINE(2),310,test1,GL_TRUE); //如果横屏,Y轴递减

GL_DisplayAdjStringLine(LINE(3),310,test2,GL_TRUE);

GL_DisplayAdjStringLine(LINE(4),310,test3,GL_TRUE);

GL_DisplayAdjStringLine(LINE(5),310,test4,GL_TRUE);

GL_DisplayAdjStringLine(LINE(6),310,test5,GL_TRUE);

GL_DisplayAdjStringLine(LINE(7),310,test6,GL_TRUE);

GL_DisplayAdjStringLine(LINE(8),310,test7,GL_TRUE);

GL_DisplayAdjStringLine(LINE(9),130,"蔡志威",GL_TRUE);

GL_SetFont(GL_FONT_SMALL);

//SetFont(GL_Font8x12_bold);

GL_DisplayAdjStringLine(220,80," 2013-10-08",GL_TRUE);

while (1)

{

}

}

map文件:

==============================================================================

Code (inc. data) RO Data RW Data ZI Data Debug

9944 738 293276 360 1080 0 Grand Totals

9944 738 293276 224 1080 0 ELF Image Totals (compressed)

9944 738 293276 224 0 0 ROM Totals

==============================================================================

Total RO Size (Code + RO Data) 303220 ( 296.11kB)

Total RW Size (RW Data + ZI Data) 1440 ( 1.41kB)

Total ROM Size (Code + RO Data + RW Data) 303444 ( 296.33kB)

==============================================================================

实验效果:

百为开发平台:

工程源码下载地址:

http://share.weiyun.com/c10c5e371d01f33a97e8c2afa0ec170d

责任编辑:

stm32怎么加载字库_如何用STM32的片内Flash存储中文字库相关推荐

  1. stm32怎么加载字库_收藏 | STM32单片机超详细学习汇总资料(二)

    点击"蓝字"关注我们 3110月 收藏 | STM32单片机超详细学习汇总资料(一) ◆41.DMA仲裁器分为软件和硬件两种.软件部分分为4个等级,分别是很高优先级.高优先级.中等 ...

  2. stm32分散加载学习_倡导联合学习的天才使隐私分散化

    stm32分散加载学习 Chances are, your phone is within five feet of you right now. 您的手机现在离您的五英尺以内. In fact, a ...

  3. 【Android 逆向】类加载器 ClassLoader ( 使用 DexClassLoader 动态加载字节码文件 | 拷贝 DEX 文件到内置存储 | 加载并执行 DEX 字节码文件 )

    文章目录 一.拷贝 Assets 目录下的 classes.dex 字节码文件到内置存储区 二.加载 DEX 文件并执行其中的方法 三.MainActivity 及执行结果 四.博客资源 一.拷贝 A ...

  4. stm32怎么加载字库_STM32如何实现W25X16的汉字字库存储

    系统中使用过多的汉字会出现芯片容量不够用的问题,可将数据存储在外部FLASH中,在需要使用时进行调用即可.本文是通过STM32串口1实现对W25X16的汉字字库存储.软件层面,配置串口1和SPI1即可 ...

  5. [html] img中的src加载失败时如何用默认图片来替换呢?

    [html] img中的src加载失败时如何用默认图片来替换呢? img有onerror属性,加载失败时触发error事件 但是这种解决方法在error里面替换的默认图片也加载失败的时候会导致问题,需 ...

  6. unity 加载关卡_Unity5.0_Application.isLoadingLevel 正在加载关卡_软件教程_资源库

    摘要:Unity5.0_Application.isLoadingLevel 正在加载关卡_软件教程_资源库 Application.isLoadingLevel 正在加载关卡? static var ...

  7. java加载顺序_类加载过程中几个重点执行顺序整理

    正文前先来一波福利推荐: 福利一: 百万年薪架构师视频,该视频可以学到很多东西,是本人花钱买的VIP课程,学习消化了一年,为了支持一下女朋友公众号也方便大家学习,共享给大家. 福利二: 毕业答辩以及工 ...

  8. pytorch模型加载测试_使用Pytorch实现物体检测(Faster R-CNN)

    在本示例中,介绍一种two-stage算法(Faster R-CNN),将目标区域检测和类别识别分为两个任务进行物体检测.本示例采用PyTorch引擎进行模型构建. 如果您已熟练使用Notebook和 ...

  9. 静态原型设计 加载中_见解1:原型设计有助于填补静态设计留下的空白。

    静态原型设计 加载中 In April 2015, I joined the Disney Parks creative team to design mobile experiences for t ...

最新文章

  1. 快速查找无序数组中的第K大数?
  2. PHP CURL 多线程 GET/POST 类
  3. Redis工作笔记-事务
  4. 玩转Google开源C++单元测试框架Google Test系列
  5. PHP依赖注入(DI)和控制反转(IoC)详解
  6. Windows phone8 基础篇(二) xaml介绍 一
  7. 服务器中W3SVC1文件夹的文件,完美解决IIS 服务器无法加载应用程序 '/LM/W3SVC/1/ROOT'。错误是 '没有注册类别...
  8. 夜间灯光数据dn值_探讨DMSP/OLS夜间灯光数据的校正
  9. 西门子step7安装注册表删除_如何完全删除step 7
  10. 网页设计与制作项目教程HTML+CSS+JavaScript之项目二
  11. CDN 回源与文件预热
  12. 淘客菜鸟百度贴吧怎么发帖子操作淘宝客
  13. item_search - 按关键字搜索淘宝商品API接口调用展示
  14. 利用机器学习算法挖掘群控网络黑产设备
  15. Vscode 与服务器建立远程连接(ssh)
  16. swift android界面,使用 Swift 语言编写 Android 应用入门
  17. TestNG入门教程-6-enabled和priority属性
  18. Java中的gvm_深入浅出GVM之GC
  19. YOLOV3解读(3)
  20. ed2k 网络中搜索资源并选择资源下载的分析及eMule源码梳理

热门文章

  1. eslint 如何单独给一行取消eslint检查
  2. 一程序员辞职开发赌博软件,2年涉案4千万被抓
  3. 基于pyqt5的登录界面及人脸识别功能界面相互跳转的设计(1)
  4. 中华数据库与运维安全大会全程解析
  5. 图格 Pro for mac(图片拼图切图大师)
  6. Clipboard.js移动端【ios】复制事件不生效解决方法
  7. 手机NFC开启门禁方案介绍
  8. 《黑匣子思维:我们如何更理性地犯错》iphone部分
  9. vmware、操作系统、数据库软件、oracle 补丁集地址下载
  10. Python高级--逻辑回归、KNN回归比较