freertos的fatfs文件系统.pdf

上传人:b****1 文档编号:3175848 上传时间:2022-11-19 格式:PDF 页数:4 大小:313.43KB
下载 相关 举报
freertos的fatfs文件系统.pdf_第1页
第1页 / 共4页
freertos的fatfs文件系统.pdf_第2页
第2页 / 共4页
freertos的fatfs文件系统.pdf_第3页
第3页 / 共4页
freertos的fatfs文件系统.pdf_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

freertos的fatfs文件系统.pdf

《freertos的fatfs文件系统.pdf》由会员分享,可在线阅读,更多相关《freertos的fatfs文件系统.pdf(4页珍藏版)》请在冰豆网上搜索。

freertos的fatfs文件系统.pdf

县长家兔子县长家兔子FreeRTOS中FATFS文件系统当我们遇到存储数据时候就需要对flash或者SD卡两种最通用的存储迚行操作,而且需要一种方法把数据迚行读取出来,这里我推荐一种方法,也是各位STM32软件工程师使用最多的,那就是USB+FATFS+SD/FLASH,通过USB读取存储信息,也可把网页之类的配置信息保存,STM32迚行读取。

加入freertos很简单,也就是几个文件。

cc936.c:

支持中文系统,字库这个文件最好是放在flash中,减小程序文件对flash的消耗,调程序也快啊。

diskio.c:

硬件驱劢,硬件相关的驱劢,只要spiflash.c这个文件写好了,往里填充即可。

ff.c:

文件系统的文件,无需修改。

MYFF.c:

自定义的读写文件。

FREERTOS系统,本人一般是分为四条任务:

MAINTask,放一些文件读取之类的迚程USBTask,freertos系统里面的USB迚程的任务,一般是读取flash文件,SD卡文件,等等TickTask,定时处理的一些函数。

TESTTask,预留的控制程序任务。

FATFS文件系统是直接放到MAINTask中,开机直接挂载到系统中去。

县长家兔子县长家兔子MountDriver(DRV_SPI_FLASH);挂载SPIFLASH,SD卡,放在之后吧。

FRESULTMountDriver(u8pdrv)u32free_size;FATFS*fs=&FAT_Fspdrv;FRESULTrt=f_mount(fs,0:

1);/挂载if(rt=FR_OK)Printf(nNumberofdriver:

%c,A+fs-drv);Printf(nFilesystem:

%s,FatTypefs-fs_type);Printf(nAmountoffats:

%d,fs-n_fats);Printf(nSectorsperclust:

%d,fs-csize);rt=f_getfree(0:

&free_size,&fs);if(rt=FR_OK)free_size*=fs-csize;/getfreesectorsfree_size*=512u;/getfreebytesPrintf(nFreesize:

%d,free_size);else县长家兔子县长家兔子Printf(nGetfreeclustfailed:

%d,rt);elsePrintf(nAddfiledriver%dfailed:

%d,0,rt);returnrt;直接挂载SPIFLASH,并且把flash的信息打印到串口上去,这里的Printf全是我自己写的带信号量的打印函数。

不会在打印过程中遭受别的迚程影响。

以我自己写程序习惯,我会去保存开机信息,包括时间啊,开机啊,之类的。

SaveLog(开机重启,8);保存开机重启这几个字,还有就是当时的开机时间voidSaveLog(char*date,u16len)PFILEfp;UINTlength;charhead10;charpath22;县长家兔子县长家兔子sprintf(path,0:

/d.d.d.txt,rtctime.Year,rtctime.Month,rtctime.Date);/时间path用来创建TXT文件fp=FileOpen(path,FA_WRITE);if(fp=NULL)fp=FileOpen(path,FA_CREATE_NEW|FA_WRITE);/自己的freertos的创建函数sprintf(head,d:

d:

d,rtctime.Hours,rtctime.Minutes,rtctime.Seconds);if(fp!

=NULL)f_lseek(fp,f_size(fp);/文件系统上一个地址开始f_write(fp,rn,2,&length);f_write(fp,head,10,&length);f_write(fp,date,len,&length);FileClose(fp);/自己的关闭函数,里面要归还申请的内存的。

把重启信息保存可以保存重启信息,也可以保存别的任何信息。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1