OpenEdv-开源电子网

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

这几天在看原子哥的汉字显示实验-遇到几个问题。

[复制链接]

32

主题

153

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
453
金钱
453
注册时间
2014-11-5
在线时间
0 小时
发表于 2015-2-9 10:48:34 | 显示全部楼层 |阅读模式
5金钱
ftinfo.gbk12size=fftemp->fsize;      //GBK12字库大小
flashaddr=ftinfo.f12addr;              //GBK12的起始地址
ftinfo.gkb16size=fftemp->fsize;      //GBK16字库大小

SD卡更新程序时--那几个结构体参数fftemp->fsize在哪被赋值的呢?实在没看出来----

最佳答案

查看完整内容[请看2#楼]

[mw_shl_code=c,true] res=f_read(fftemp,tempbuf,4096,(UINT *)&bread); //读取数据[/mw_shl_code]
酱油团队--
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

102

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2014-12-21
在线时间
0 小时
发表于 2015-2-9 10:48:35 | 显示全部楼层
[mw_shl_code=c,true] res=f_read(fftemp,tempbuf,4096,(UINT *)&bread); //读取数据[/mw_shl_code]
回复

使用道具 举报

32

主题

153

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
453
金钱
453
注册时间
2014-11-5
在线时间
0 小时
 楼主| 发表于 2015-2-9 14:31:00 | 显示全部楼层
回复【2楼】exv:
---------------------------------
4096固定的?
酱油团队--
回复

使用道具 举报

2

主题

102

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2014-12-21
在线时间
0 小时
发表于 2015-2-9 14:41:46 | 显示全部楼层
[mw_shl_code=c,true]/* File object structure (FIL) */ typedef struct { FATFS* fs; /* Pointer to the related file system object (**do not change order**) */ WORD id; /* Owner file system mount ID (**do not change order**) */ BYTE flag; /* File status flags */ BYTE err; /* Abort flag (error code) */ DWORD fptr; /* File read/write pointer (Zeroed on file open) */ DWORD fsize; /* File size */ DWORD sclust; /* File data start cluster (0:no data cluster, always 0 when fsize is 0) */ DWORD clust; /* Current cluster of fpter */ DWORD dsect; /* Current data sector of fpter */ #if !_FS_READONLY DWORD dir_sect; /* Sector containing the directory entry */ BYTE* dir_ptr; /* Pointer to the directory entry in the window */ #endif #if _USE_FASTSEEK DWORD* cltbl; /* Pointer to the cluster link map table (Nulled on file open) */ #endif #if _FS_LOCK UINT lockid; /* File lock ID (index of file semaphore table Files[]) */ #endif #if !_FS_TINY BYTE buf[_MAX_SS]; /* File data read/write buffer */ #endif } FIL;[/mw_shl_code]
最后要的是FIL* fp指向的内容(包含fsize等),4096应该是一个足够大的空间,以容下这个结构体可能的大小。

 
[mw_shl_code=c,true]FRESULT f_read ( FIL* fp, /* Pointer to the file object */ void* buff, /* Pointer to data buffer */ UINT btr, /* Number of bytes to read */ UINT* br /* Pointer to number of bytes read */ )[/mw_shl_code]

回复

使用道具 举报

32

主题

153

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
453
金钱
453
注册时间
2014-11-5
在线时间
0 小时
 楼主| 发表于 2015-2-17 23:54:33 | 显示全部楼层
回复【4楼】exv:
---------------------------------
fftemp是怎么被赋值的呢?  它是定义的一个FIL结构体类型的变量,怎么给fsize赋值的?  难道是结构体赋值?
酱油团队--
回复

使用道具 举报

2

主题

102

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2014-12-21
在线时间
0 小时
发表于 2015-2-18 00:32:00 | 显示全部楼层
回复【5楼】xiaolong12:
---------------------------------
通过f_read得到整个FIL结构体内容,里面已包含了fsize。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-25 19:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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