如题,本人不太熟悉GCC,特别是定义在flash和eeprom的数据,所以在做液晶的字库时遇到问题,讲解下思路:用查表的方式,定义一个结构体来装载字符的内码和字符数据。程序如下:

/*******************************************字库定义******************************/

// ------------------  汉字字模的数据结构定义 ------------------------ //

struct  typFNT_GB32                 // 汉字字模数据结构

{

unsigned char  Index[3];               // 汉字内码索引

unsigned char   Msk[128];                        // 点阵码数据

};

/

// 汉字字模表                                                          //

// 汉字库: 宋体32.dot,横向取模左高位,数据排列:从左到右从上到下         //

/

struct  typFNT_GB32 codeGB_32[] PROGMEM={                                 // 数据表

/*--  文字:  彩  --*/

/*--  宋体22;  此字体下对应的点阵为:宽x高=30x29   --*/

/*--  宽度不是8的倍数,现调整为:宽度x高度=32x29  --*/

{{"彩"},{0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x1F,0xC0,0xC0,0x03,0xFF,0xC1,0xE0,

0x3F,0xE0,0x03,0xE0,0x00,0xE3,0xC7,0xC0,0x18,0xF3,0xCF,0x00,0x1E,0x7B,0x9E,0x00,

0x0F,0x7F,0x3C,0x00,0x07,0x37,0xF0,0x00,0x07,0x6E,0xC0,0x60,0x02,0x7C,0x00,0xF0,

0x00,0x70,0x81,0xF0,0x3F,0xFF,0xC3,0xC0,0x3F,0xFF,0xEF,0x80,0x01,0xF0,0x1E,0x00,

0x01,0xF8,0x78,0x00,0x03,0xFC,0xF0,0x70,0x03,0xFF,0x80,0xF8,0x07,0xF7,0x81,0xF8,

0x07,0x77,0x83,0xE0,0x0E,0x73,0x87,0xC0,0x1C,0x71,0x8F,0x00,0x38,0x70,0x3E,0x00,

0x30,0x70,0xF8,0x00,0x60,0x73,0xE0,0x00,0x00,0x7F,0x80,0x00,0x00,0x7C,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}},

};

/******************************读取字库送显***************************************/

void PutGB3232(unsigned short x, unsigned short  y, unsigned char c[2], unsigned int fColor,unsigned int bColor,uint8 b_en)

{

unsigned int i,j,k;

LCD_SetPos(x,  x+32-1,y, y+32-1);

for (k=0;k<50;k++) { //15标示自建汉字库中的个数,循环查询内码

if ((pgm_read_byte(codeGB_32[k].Index[0])==c[0])&&(pgm_read_byte(codeGB_32[k].Index[1])==c[1])){

for(i=0;i<128;i++) {

unsigned short m=pgm_read_byte(codeGB_32[k].Msk);

for(j=0;j<8;j++) {

if((m&0x80)==0x80) {

Write_Data_U16(fColor);

}

else if(b_en) {

Write_Data_U16(bColor);

}

m<<=1;

}

}

}

}

}

我试着把数据定义在内存里面,就是把 PROGMEM 和 pgm_read_byte 去掉,液晶能正常的显示汉字,

但是当我把字库定义在flash里面的时候,就读不出数据了,我知道问题出现在结构体的定义和数据的读取那里,但是我不知道怎么改,求各位帮帮忙解决下好吗,小弟万分感激!!!

c语言 将结构体放在flash,如何将 结构体 的 数据 定义在flash里面,并如何读出来,求各位达人帮助……...相关推荐

  1. c语言 将结构体放在flash,stm32的内部flash读写操作(含结构体的保存)

    不同的stm32单片机的flash大小不同,这个需要查阅芯片手册或者查看STM32CubeMX软件. stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实 ...

  2. c语言shengchen图像,430编程C语言常识(IAR)(二)结构体与联合体

    回复: 107 430编程C语言常识(IAR)(二)结构体与联合体 (288035412) 出0入0汤圆 电梯直达 发表于 2012-4-7 18:36:29 | 只看该作者 |倒序浏览 |阅读模式 ...

  3. c++ 结构体赋值_《零基础看得懂的C语言入门教程》—(十二)结构体是这么回事

    一.学习目标 了解C语言的结构体的使用方法 了解C语言结构体的结构的赋值 了解多种C语言结构体变量的赋值方法和取值方法 目录 <零基础看得懂的C语言入门教程>--(二)简单带你了解流程 & ...

  4. 【C 语言】文件操作 ( 读取文件中的结构体数组 | feof 函数使用注意事项 )

    文章目录 一.读取文件中的结构体数组 | feof 函数使用注意事项 二.代码示例 一.读取文件中的结构体数组 | feof 函数使用注意事项 读取文件结构体时 , 可以循环读取文件中的数据 , 只使 ...

  5. C语言一维数组、二维数组、结构体的初始化

    C语言数组的初始化表示方法 一.C语言一维数组初始化: (1)在定义数组时对数组元素赋以初值.如: static int a[10]={0,1,2,3,4,5,6,7,8,9}; 经过上面的定义和初始 ...

  6. c语言结构体与共同体课件,《结构体与共同体》PPT课件.ppt

    <<结构体与共同体>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<结构体与共同体>PPT课件.ppt(44页珍藏版)>请在装配图网上搜索. 1 ...

  7. 【精华文】C语言结构体特殊情况分析:结构体指针 / 基本数据类型指针,指向其他结构体

    参考链接:Structure pointer pointing to different structure instance 注:可以查看此篇的问题和唯一的回复,那是相对正确的,不要看comment ...

  8. c语言 结构体声明和引用、,结构体的声明与自引用

    今天上了数据结构课程的第一堂课,经常会看到下面这种语法:结构体有个成员变量是指向该结构体的指针,也就是自引用(self reference).翻看了下一章节内容,才知道这是链表的结构基础.平时C语言用 ...

  9. 明解C语言入门篇_第12章_结构体

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

最新文章

  1. RDKit | 多肽HELM字符串格式与分子Mol格式间的转换
  2. 你在过度测试你的软件吗?
  3. ip netns 命令使用
  4. 【数据处理】python变量分箱常见手法:分类型、数值型、卡方、自定义
  5. MySQL数据库的优化
  6. mongodb连接失败_MongoDB 基础入门
  7. 网络工程师历年试题解析(PDF文字版)2004-2009
  8. datatable某一行第N列为空的时候删除某一行
  9. 编译安装mysql gmake,编译安装mysql
  10. 前端开发:颜色代码速查表【英文颜色、HEX格式、RGB格式】
  11. 大型稀疏矩阵计算的现代方法介绍
  12. 软件公司团队管理方法思考
  13. oracle异常策略,oracle segmentation fault错误
  14. 医院招聘护士 计算机证,医院招聘护士面试自我介绍
  15. thinkPHP6验证码接口
  16. MyBatis报Invalid bound statement (not found)错误
  17. Html和css的class和id的命名,[HTML] CSS Id 和 Class选择器
  18. Echarts仪表盘刻度线和标签配置
  19. 存储主控芯片亚洲新势力崛起
  20. 【CSS】行高、边框、外边距、内边距

热门文章

  1. # 异运算_小学数学运算三要点:定律、法则与顺序(解析)
  2. tcp协议的主要功能是什么_前端要知道的网络知识一:TCP/IP 协议到底在讲什么...
  3. easyexcel 无模板写入_关于EasyExcel 的一些生成模板,导入导出的使用心得(优化版)...
  4. Python对Protobuf进行序列化与反序列化
  5. Linux 字符设备驱动结构(二)—— 自动创建设备节点
  6. Python 爬虫进阶一之爬虫框架概述
  7. Java跳出多重循环
  8. 前端面试题node.js汇总
  9. Taro+react开发(86):资源文件处理
  10. 前端学习(3306):函数组件usermemo和usercallback二