cubemx的fatfs的使用(基于SPI方式SD卡)
更新时间:2023-12-01 04:04:01 阅读量: 教育文库 文档下载
- CUBEMX更换项目芯片推荐度:
- 相关推荐
十八、FATfs(基于SPI-SD卡)
1.基础条件:128MB的SD卡,采用SPI方式进行读写,参考十七部分。完成基本的扇区读和写 2.配置cubemx,启用fatfs
注:参数配置基本没有改变,只是把扇区的大小变为512。如果采用的是flash芯片,这个地方的参数是4096,就是一个扇区的大小,让fatfs文件扇区大小与硬件设备扇区大小匹配。 3.调整stack区大小
1 / 6
这个的计算依据还没有分析好,应该需要一个较大的RAM空间 4.移植程序,修改接口函数
Cubemx对fatfs进行优化,移植时修改的函数较少了。 (1)初始化函数
2 / 6
应为前面自编函数初始化的SD卡,因此这个返回OK就可以。注意,未修改前,这个返回的是没有硬件,不能用系统。一定要修改 (2)获得硬盘状态
(3)用户读扇区数据
把底层SD卡的扇区读函数在这里使用,注意,参数sector是扇区的号,从0,1,2,参数count是读扇区的个数。 (4)写扇区数据
3 / 6
注意,这里函数的接口缓冲区指针是个常量,因此把它进行转换复制给了一个变量 (5)读取参数操作
注:这里只是实现了几个参数,另外case后面的常量是fatfs定义好的,估计是上层调用使用,不能乱改 以上内容完成移植了 5.使用fatfs
4 / 6
思路:加载驱动器---格式化(可选)---读—写—获得磁盘状态
注意:磁盘的路径信息,存放在fatfs.C的数组中,其它.C文件使用,必须进行extern声明
具体代码可以参考 //=================
//1.挂载 FATFS fs; uint8_t res = f_mount(&fs, USERPath, 0); if (res != FR_OK) {
printf(\ } else printf(\ //2.格式化 uint8_t my_mkfs_status=0; //0为不格式化,1为格式化 if(my_mkfs_status==1) { printf(\ res = f_mkfs(USERPath, 1, 512); if (res == FR_OK) { printf(\ } else { printf(\ } }
//3.写入文件 FIL file; FIL *pf = &file; //uint8_t res;
res = f_open(pf, \ if (res == FR_OK) {
printf(\ } else {
printf(\
printf(\ }
f_printf(pf, \
res = f_close(pf); if (res != FR_OK) {
printf(\ printf(\ }
5 / 6
//4.写文件 //FIL file; //FRESULT res; unsigned int bw;
uint8_t rbuf[100] = {0};
res = f_open(&file, \ if (res != FR_OK) {
printf(\ } else { f_read(&file, rbuf, 20, &bw); printf(\ res = f_close(&file); if (res != FR_OK) {
printf(\
printf(\ } }
//5.读取磁盘状态 //FATFS fs; FATFS *fls = &fs; //FRESULT res; unsigned long fre_clust; res = f_getfree(\ if (res == FR_OK) { printf(\ /* Print free space in unit of MB (assuming 4096 bytes/sector) */ printf(\ \
128*1000*1000/1024,fre_clust*512/1024); } else { printf(\ printf(\ } //====================
使用方法比较简单,还有很多函数没有使用,例如查询文件、删除文件、修改文件等。目录的管理等。根据具体应用可以进一步细化
6 / 6
//4.写文件 //FIL file; //FRESULT res; unsigned int bw;
uint8_t rbuf[100] = {0};
res = f_open(&file, \ if (res != FR_OK) {
printf(\ } else { f_read(&file, rbuf, 20, &bw); printf(\ res = f_close(&file); if (res != FR_OK) {
printf(\
printf(\ } }
//5.读取磁盘状态 //FATFS fs; FATFS *fls = &fs; //FRESULT res; unsigned long fre_clust; res = f_getfree(\ if (res == FR_OK) { printf(\ /* Print free space in unit of MB (assuming 4096 bytes/sector) */ printf(\ \
128*1000*1000/1024,fre_clust*512/1024); } else { printf(\ printf(\ } //====================
使用方法比较简单,还有很多函数没有使用,例如查询文件、删除文件、修改文件等。目录的管理等。根据具体应用可以进一步细化
6 / 6
正在阅读:
cubemx的fatfs的使用(基于SPI方式SD卡)12-01
无卤阻燃剂的发展趋势及研究现状05-22
2013-2014学年湖北荆门市高二上学期期末质量检测文数学试卷(带03-22
图像方向识别与目标分割05-25
铁路交通事故调查基本步骤与程序12-25
高中物理力学实验总复习汇总05-27
2015-2020年山西省土木工程行业分析及发展前景分析报告 - 图文10-01
火车行程问题10-31
篮球竞赛30s计时器设计 - 图文10-05
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 基于
- 方式
- 使用
- cubemx
- fatfs
- SPI
- 配套K122018秋高中历史专题3中国社会主义建设道路的探索一社会主义建设在探索中曲折发展学案人
- 吸取深刻教训,切实改变工作作风,廉洁勤勉敬业
- 迪士尼角色设计稿
- 2010--2011学年第二学期《市场营销》期中试题 09电会1 2班
- 现代推销学小组作业
- 主题课例式教研活动探究
- 信号与系统实验四
- 小苏打和白醋的变化说课稿
- 管理会计教案
- 《中国现当代文学史》作业习题集及试题答案
- 《焊接理论基础》试卷(A卷)答案xuanyong
- 新湘教版八上第一章 第四节 中国的民族
- 一年级数学小课题研究
- 实变函数论教案第二章
- 四川省凉山州2018年中考英语试题word版含答案
- EP9A2 中文版 - 图文
- 红外无线数据传输系统的设计与实现 - 毕业论文
- 2015-2020年中国无卤阻燃剂行业运营趋势及发展前景报告
- 2015—2016学年师德师风建设工作总结
- 斗轮机题库