stm32怎么加载字库_如何用STM32的片内Flash存储中文字库
原标题:如何用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存储中文字库相关推荐
- stm32怎么加载字库_收藏 | STM32单片机超详细学习汇总资料(二)
点击"蓝字"关注我们 3110月 收藏 | STM32单片机超详细学习汇总资料(一) ◆41.DMA仲裁器分为软件和硬件两种.软件部分分为4个等级,分别是很高优先级.高优先级.中等 ...
- stm32分散加载学习_倡导联合学习的天才使隐私分散化
stm32分散加载学习 Chances are, your phone is within five feet of you right now. 您的手机现在离您的五英尺以内. In fact, a ...
- 【Android 逆向】类加载器 ClassLoader ( 使用 DexClassLoader 动态加载字节码文件 | 拷贝 DEX 文件到内置存储 | 加载并执行 DEX 字节码文件 )
文章目录 一.拷贝 Assets 目录下的 classes.dex 字节码文件到内置存储区 二.加载 DEX 文件并执行其中的方法 三.MainActivity 及执行结果 四.博客资源 一.拷贝 A ...
- stm32怎么加载字库_STM32如何实现W25X16的汉字字库存储
系统中使用过多的汉字会出现芯片容量不够用的问题,可将数据存储在外部FLASH中,在需要使用时进行调用即可.本文是通过STM32串口1实现对W25X16的汉字字库存储.软件层面,配置串口1和SPI1即可 ...
- [html] img中的src加载失败时如何用默认图片来替换呢?
[html] img中的src加载失败时如何用默认图片来替换呢? img有onerror属性,加载失败时触发error事件 但是这种解决方法在error里面替换的默认图片也加载失败的时候会导致问题,需 ...
- unity 加载关卡_Unity5.0_Application.isLoadingLevel 正在加载关卡_软件教程_资源库
摘要:Unity5.0_Application.isLoadingLevel 正在加载关卡_软件教程_资源库 Application.isLoadingLevel 正在加载关卡? static var ...
- java加载顺序_类加载过程中几个重点执行顺序整理
正文前先来一波福利推荐: 福利一: 百万年薪架构师视频,该视频可以学到很多东西,是本人花钱买的VIP课程,学习消化了一年,为了支持一下女朋友公众号也方便大家学习,共享给大家. 福利二: 毕业答辩以及工 ...
- pytorch模型加载测试_使用Pytorch实现物体检测(Faster R-CNN)
在本示例中,介绍一种two-stage算法(Faster R-CNN),将目标区域检测和类别识别分为两个任务进行物体检测.本示例采用PyTorch引擎进行模型构建. 如果您已熟练使用Notebook和 ...
- 静态原型设计 加载中_见解1:原型设计有助于填补静态设计留下的空白。
静态原型设计 加载中 In April 2015, I joined the Disney Parks creative team to design mobile experiences for t ...
最新文章
- 快速查找无序数组中的第K大数?
- PHP CURL 多线程 GET/POST 类
- Redis工作笔记-事务
- 玩转Google开源C++单元测试框架Google Test系列
- PHP依赖注入(DI)和控制反转(IoC)详解
- Windows phone8 基础篇(二) xaml介绍 一
- 服务器中W3SVC1文件夹的文件,完美解决IIS 服务器无法加载应用程序 '/LM/W3SVC/1/ROOT'。错误是 '没有注册类别...
- 夜间灯光数据dn值_探讨DMSP/OLS夜间灯光数据的校正
- 西门子step7安装注册表删除_如何完全删除step 7
- 网页设计与制作项目教程HTML+CSS+JavaScript之项目二
- CDN 回源与文件预热
- 淘客菜鸟百度贴吧怎么发帖子操作淘宝客
- item_search - 按关键字搜索淘宝商品API接口调用展示
- 利用机器学习算法挖掘群控网络黑产设备
- Vscode 与服务器建立远程连接(ssh)
- swift android界面,使用 Swift 语言编写 Android 应用入门
- TestNG入门教程-6-enabled和priority属性
- Java中的gvm_深入浅出GVM之GC
- YOLOV3解读(3)
- ed2k 网络中搜索资源并选择资源下载的分析及eMule源码梳理