OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 16203|回复: 24

直接从SD卡读字库,不需要FLASH,稍微修改原子哥的程序就行

[复制链接]

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2384
金钱
2384
注册时间
2012-11-22
在线时间
403 小时
发表于 2013-5-27 15:40:20 | 显示全部楼层 |阅读模式
void Get_HzMat(unsigned char *code,unsigned char *mat,u8 size)
{
FIL fsrc;        // 定义文件操作类  
        FRESULT res;  // 定义操作结果变量  
        UINT br;         // 定义读写数量变量 
unsigned char qh,ql;
unsigned char i;  
unsigned long foffset; 
qh=*code;
ql=*(++code);
if(qh<0x81||ql<0x40||ql==0xff||qh==0xff)//非 常用汉字
{      
   for(i=0;i<(size*2);i++)*mat++=0x00;//填充满格
   return; //结束访问
}          
if(ql<0x7f)ql-=0x40;//注意!
else ql-=0x41;
qh-=0x81;   
foffset=((unsigned long)190*qh+ql)*(size*2);//得到字库中的字节偏移量    
if(size==16)
{
           res = f_open(&fsrc, "0:/SYSTEM/FONT/GBK16.FON", FA_OPEN_EXISTING | FA_READ);   //打开字库文件  
           if(res != FR_OK)   
             {   
       
             }   
           res = f_lseek(&fsrc,foffset); //找到首地址 
           res = f_read(&fsrc, mat, 32, &br);
           res = f_close(&fsrc); //关闭字体 
}
       else
{
           res = f_open(&fsrc, "0:/SYSTEM/FONT/GBK12.FON", FA_OPEN_EXISTING | FA_READ);   //打开字库文件  
           if(res != FR_OK)   
           {   
       
           }   
         res = f_lseek(&fsrc,foffset); //找到首地址 
         res = f_read(&fsrc, mat, 24, &br);
         res = f_close(&fsrc); //关闭字体 
}
}  
把这个函数改成这样就行,试着读了一下电子书,速度稍微有点慢,还算不错。
态度决定一切
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2013-3-19
在线时间
5 小时
发表于 2016-4-15 17:17:22 | 显示全部楼层
张鋆 发表于 2015-7-15 21:29
回复【15楼】冰封嗜魔:
---------------------------------
这个怎么没有24*24字体的,这个应该怎么改呢?
...

foffset=((unsigned long)190*qh+ql)*(size*2);//得到字库中的字节偏移量

是这行代码的问题
应该是:
u8 csize=(size/8+((size%8)?1:0))*(size);
foffset=((unsigned long)190*qh+ql)*csize;                  
回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-5-28 00:05:30 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

53

主题

324

帖子

0

精华

高级会员

Rank: 4

积分
598
金钱
598
注册时间
2012-6-18
在线时间
7 小时
发表于 2013-5-28 08:47:16 | 显示全部楼层
mark
回复 支持 反对

使用道具 举报

9

主题

53

帖子

0

精华

高级会员

Rank: 4

积分
844
金钱
844
注册时间
2013-4-21
在线时间
226 小时
发表于 2013-6-29 13:45:52 | 显示全部楼层
mark,谢谢分享
https://shop286328453.taobao.com/
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-6-29 22:38:22 | 显示全部楼层
有没有做缓冲?
业余程序玩家。
回复 支持 反对

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2384
金钱
2384
注册时间
2012-11-22
在线时间
403 小时
 楼主| 发表于 2013-6-30 11:35:03 | 显示全部楼层
回复【5楼】ofourme:
---------------------------------
哈意思?
态度决定一切
回复 支持 反对

使用道具 举报

50

主题

201

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
423
金钱
423
注册时间
2013-4-9
在线时间
1 小时
发表于 2013-7-9 14:45:24 | 显示全部楼层
回复【楼主位】冰封嗜魔:
---------------------------------
有道理- -
回复 支持 反对

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2013-7-20 15:56:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

263

主题

455

帖子

1

精华

禁止访问

积分
1212
金钱
1212
注册时间
2011-9-25
在线时间
12 小时
发表于 2013-7-20 20:01:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2384
金钱
2384
注册时间
2012-11-22
在线时间
403 小时
 楼主| 发表于 2013-7-21 08:18:54 | 显示全部楼层
回复【8楼】xouou_53320:
---------------------------------
不客气,叮当猫小弟,哈哈。
态度决定一切
回复 支持 反对

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2384
金钱
2384
注册时间
2012-11-22
在线时间
403 小时
 楼主| 发表于 2013-7-21 08:19:07 | 显示全部楼层
回复【9楼】syhx8262516:
---------------------------------
恩,是有点慢。
态度决定一切
回复 支持 反对

使用道具 举报

9

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2012-6-9
在线时间
0 小时
发表于 2013-8-12 21:28:57 | 显示全部楼层
回复【楼主位】冰封嗜魔:
---------------------------------
大哥,这个是自己定义的函数吗,里面好像没有呢?
回复 支持 反对

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2384
金钱
2384
注册时间
2012-11-22
在线时间
403 小时
 楼主| 发表于 2013-8-14 15:49:01 | 显示全部楼层
额,原子哥例子里面的函数。
态度决定一切
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-12-8
在线时间
0 小时
发表于 2015-2-12 17:59:00 | 显示全部楼层
话说我这样改为什么还是读不出来?
回复 支持 反对

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2384
金钱
2384
注册时间
2012-11-22
在线时间
403 小时
 楼主| 发表于 2015-2-14 16:16:46 | 显示全部楼层
回复【14楼】shmily27518:
---------------------------------
哪边改错了你
态度决定一切
回复 支持 反对

使用道具 举报

19

主题

102

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
204
金钱
204
注册时间
2015-6-19
在线时间
1 小时
发表于 2015-7-15 18:15:00 | 显示全部楼层
太棒了!学习下!
回复 支持 反对

使用道具 举报

19

主题

102

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
204
金钱
204
注册时间
2015-6-19
在线时间
1 小时
发表于 2015-7-15 21:29:45 | 显示全部楼层
回复【15楼】冰封嗜魔:
---------------------------------
这个怎么没有24*24字体的,这个应该怎么改呢?
 res = f_open(&fsrc, "0:/SYSTEM/FONT/GBK24.FON", FA_OPEN_EXISTING | FA_READ);   //打开字库文件  
           if(res != FR_OK)   
           {   
       
           }   
         res = f_lseek(&fsrc,foffset); //找到首地址 
         res = f_read(&fsrc, mat, 72, &br); 
         res = f_close(&fsrc); //关闭字体 

我改成这样,读出来乱码了!
回复 支持 反对

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2384
金钱
2384
注册时间
2012-11-22
在线时间
403 小时
 楼主| 发表于 2015-7-16 19:38:55 | 显示全部楼层
回复【17楼】张鋆:
---------------------------------
72是不是不对,48试试?
态度决定一切
回复 支持 反对

使用道具 举报

19

主题

102

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
204
金钱
204
注册时间
2015-6-19
在线时间
1 小时
发表于 2015-7-17 08:41:37 | 显示全部楼层
回复【18楼】冰封嗜魔:
---------------------------------
48也试过了,哈哈,也不对!这个什么原因呢,这两天没时间好好看程序,就问问您!等有空研究研究也行!
回复 支持 反对

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2384
金钱
2384
注册时间
2012-11-22
在线时间
403 小时
 楼主| 发表于 2015-7-17 20:00:37 | 显示全部楼层
回复【19楼】张鋆:
---------------------------------
惭愧,我也好久不看这个程序啦,你再研究研究。
态度决定一切
回复 支持 反对

使用道具 举报

19

主题

102

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
204
金钱
204
注册时间
2015-6-19
在线时间
1 小时
发表于 2015-7-18 08:37:22 | 显示全部楼层
回复【20楼】冰封嗜魔:
---------------------------------
您谦虚,没关系的,我再自己看看!再次感谢!
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2016-1-7
在线时间
103 小时
发表于 2018-7-14 22:01:56 | 显示全部楼层
不得不回复感谢下 这个太好用了
回复 支持 反对

使用道具 举报

2

主题

33

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
377
金钱
377
注册时间
2015-10-19
在线时间
173 小时
发表于 2018-11-29 23:30:09 | 显示全部楼层
感謝版大好用的程序
較大的字型放到SD卡就不怕外部FLASH(W25Q128)不夠用
回复 支持 反对

使用道具 举报

8

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
224
金钱
224
注册时间
2019-4-17
在线时间
34 小时
发表于 2020-5-12 11:41:03 | 显示全部楼层
楼主威武,按想了好久都没想出来
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-6 18:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表