STM32F407ZGT6驱动sd卡+文件夹 并写入多组实时数据 基于cubemx生成

SD卡介绍

SD卡,全称Secure Digital卡,是一种常见的便携式存储设备,通常用于存储和传输数据。它是一种闪存存储卡。
TF卡(TransFlash卡) 又称MicroSD卡,MicroSD卡比SD卡小,通常只有SD卡的1/4大小。
在这里插入图片描述

在使用sd卡时候 十分推荐 以下我的文章会基于大佬的代码 再加上自己需求的代码
STM32CubeMX教程28 SDIO - 使用FatFs文件系统读写SD卡
对sd卡的sdio方式驱动十分清晰

我需要将采集的5000数据 每次写入sd卡 使用一个data_x.txt文件存储

void I2SToSDCard(int i){sprintf(filename,"data_%d.txt",file_number1);char filepath[64];sprintf(filepath, "0:\\%s\\%s", folder, filename);HAL_Delay(1);if(f_open(&file, filepath, FA_WRITE | FA_OPEN_ALWAYS) != FR_OK){printf("创建文件失败\r\n");return;}for(int j=0;j<i;j++){f_lseek(&file,f_size(&file));	sprintf(str2,"%d\n",va132_array[j]);f_puts(str2, &file); //HAL_Delay(1);}f_close(&file);
}

文件夹在每次上电时会进行创建

	//每次新上电一次 新创建一个文件夹 将一次上电的数据 都存储在当前文件夹内sprintf(folder,"file_%d",file_number);if( f_mkdir(folder) != FR_OK){printf("创建文件夹失败\r\n");}

需要掉电存储变量 当上电一次 file_number++
我使用的是 IIC驱动24C02 eeprom掉电存储
eeprom使用 cubemx STM32F407ZGT6【IIC驱动AT24C02】

当我需要删除文件夹目录内的内容

/*删除文件夹*/// 递归删除目录中的所有文件和子目录
void DeleteFilesInDirectory(const TCHAR* path) {DIR dir;FILINFO fno;FRESULT res;TCHAR fullPath[256];// 打开目录res = f_opendir(&dir, path);if (res != FR_OK) {printf("打开目录失败: %d\r\n", res);return;}// 遍历目录中的所有项while (1) {res = f_readdir(&dir, &fno); // 读取目录项if (res != FR_OK || fno.fname[0] == 0) break; // 到达目录末尾// 忽略 "." 和 ".."if (strcmp(fno.fname, ".") == 0 || strcmp(fno.fname, "..") == 0) continue;// 生成文件或目录的完整路径snprintf(fullPath, sizeof(fullPath), "%s/%s", path, fno.fname);if (fno.fattrib & AM_DIR) {// 如果是目录,递归删除目录DeleteFilesInDirectory(fullPath);f_rmdir(fullPath); // 删除空目录} else {// 如果是文件,删除文件f_unlink(fullPath);}}f_closedir(&dir);
}// 删除指定目录及其内容
void FatFs_DeleteDirectory(const TCHAR* dirname) {printf("\r\n*** Delete Directory: %s ***\r\n", dirname);DeleteFilesInDirectory(dirname);// 删除目录本身FRESULT res = f_rmdir(dirname);if (res == FR_OK) {printf("The directory was deleted successfully!\r\n");} else {printf("Directory deletion failed, error code: %d\r\n", res);}
}

当在主函数内调用 FatFs_DeleteDirectory(“FILE_1”);
就可以把SD卡 对应的FILE_1文件夹删除

/******************************************************************//*删除目录之前的文件 从FLIE_1开始存储*//******************************************************************/void Delete(uint8_t number){uint8_t m;for(m=number;m>0;m--){sprintf(deletename,"file_%d",m);FatFs_DeleteDirectory(deletename);HAL_Delay(200);}}

调用上述函数就可以实现将sd卡 内之前创建的文件夹进行删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1540326.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

LLM(大语言模型)和AIGC入门学习路线图,零基础入门到精通,收藏这一篇就够了

大模型是指网络规模庞大的深度学习模型&#xff0c;其参数量通常在千亿级别。 学习大模型需要具备计算机基础&#xff0c;这一点非常重要&#xff01; 要系统地入门大模型&#xff0c;首先需要学习深度学习的基础知识&#xff0c;包括神经网络&#xff08;NN&#xff09;、卷…

nvm node管理工具常用指令

注&#xff1a;使用nvm之前需要卸载掉原有的node 1.在终端输入 nvm list available&#xff0c; 查看网络可以安装的版本。 点击visit后面的链接可查看完整版本列表 版本区别&#xff1a; CURRENT&#xff1a;当前正在使用的 Node.js 版本。LTS&#xff08;Long Term Suppor…

java踩坑

1.mybatis在idea可以正常运行&#xff0c;但是打jar包后&#xff0c;就报链接超时&#xff0c;可能是参数设置有问题&#xff0c;但是idea自动忽略了。 出问题的配置&#xff1a;&#xff08;圈出来的地方乱码了&#xff0c;idea有纠错能力&#xff0c;它自动调整为正确的&…

电脑录课软件哪个好用,提高教学效率?电脑微课录屏软件推荐

在当今这个数字化时代&#xff0c;教育领域也迎来了翻天覆地的变化。随着远程教学和在线学习的普及&#xff0c;教师们开始寻求更高效、更便捷的教学工具来提升教学质量和学生的学习体验。电脑录课软件&#xff0c;作为现代教育技术的重要组成部分&#xff0c;能够帮助教师轻松…

基于存内计算架构的模型部署与映射优化

先进计算大赛背景&#xff1a; ‘’存内计算”架构通过消除存储与计算单元间的物理距离&#xff0c;突破传统冯诺依曼架构的限制&#xff0c;自2016年起受到广泛关注&#xff0c;被视为国产算力发展的关键技术。 ​ 在存内计算架构中&#xff0c;权重布局对提高存算单元利用率…

海外盲盒APP为盲盒出海助力,拓展海外市场

潮玩市场是一个具有全球化的行业在全球都具有非常高的发展潜力&#xff0c;随着国内盲盒市场的饱和&#xff0c;拓展海外市场对盲盒企业至关重要。近年来&#xff0c;盲盒已经在海外市场取得了一定的成绩&#xff0c;这为企业拓展海外市场奠定了发展基础。 目前&#xff0c;在…

虚拟机(VMware)安装,保姆级教程(附所有安装包及所有安装步骤)

1.安装包下载 1.1VMware下载 VMware安装包 提取码&#xff1a;b9ds 1.2镜像下载 镜像安装包 提取码&#xff1a;hbtq 2.配置虚拟机向导 2.1配置虚拟机向导 2.2选择虚拟机硬件兼容性 2.3安装客户机操作系统 2.4简易安装信息 2.5命名虚拟机 2.6处理器配置 #这个根据自己…

“数字化、数字化流程、流程数字化转型、端到端流程”概念解析

​头一次看到能把“数字化”“数字化流程”“流程数字化转型”和“端到端流程”说的这么清楚的&#xff01; 所谓的“数字化”是指新一代的数字化技术&#xff0c;比如移动、社交、云技术、大数据、人工智能、区块链、数字孪生等。这批新技术已经开始改变人们的工作方式&#x…

VBA技术资料MF198:禁用下拉拖放

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

案例精选 | 聚铭助力河北省某市公安局筑牢网络安全防护屏障

近年来&#xff0c;各级公安机关积极响应信息化发展趋势&#xff0c;致力于提升公安工作的效能与核心战斗力。河北省某市公安局作为主管全市公安工作的市政府部门&#xff0c;承担着打击违法犯罪、维护社会稳定的重任。随着信息化建设的推进&#xff0c;局内系统数量、种类及数…

模板初阶(C++)

初识模板 模板分为 函数模板和类模板这两种&#xff0c;模板可以理解为是一套固有的方法&#xff0c;通过改变里面不同的载体&#xff08; 参数类型&#xff09;进而调高代码的复用性。这是一个经典案例&#xff0c;在不使用模板的情况下&#xff0c;若遇见不同类型的参数&…

Linux——k8s认识

计算资源隔离 - 更方便进行高并发架构的维护和升级 - 架构管理的灵活性更高&#xff0c;不再以单个节点的物理资源作为基础 技术&#xff1a; - 硬件辅助虚拟化 - 容器技术 在企业部署方案中&#xff0c;很少以单节点实现虚拟化和容器技术&#xff0c;一般以集群状态来运…

PCL KD树的使用

目录 一、概述 1.1原理 1.1.1 数据拆分过程 1.1.2 树的构建示例 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1KD树构建与查询&#xff1a; 2.1.2 k近邻搜索 2.1.3半径搜索 2.2完整代码 三、实现效果 3.1处理后点云 3.2数据显示 PCL点云算法汇总及实战…

neo4j导入csv数据

neo4j数据可视化实践 手动输入数据 - 官方democsv数据导入准备数据数据处理导入步骤① 导入疾病表格② 导入药物表格③导入疾病-药物关系表格 爬虫的csv文件 手动输入数据 - 官方demo 点击之后&#xff0c;按照左边10张图中的代码&#xff0c;复制粘贴熟悉语法 效果如下 csv数据…

(十六)Ubuntu 20.04 下搭建PX4+MATLAB 仿真环境(HITL)

在文章&#xff08;十五&#xff09;Ubuntu 20.04 下搭建PX4MATLAB 仿真环境我们学习了如何配置仿真环境&#xff0c;在本节&#xff0c;主要进行HITL的仿真环境搭建。 根据&#xff08;十五&#xff09;Ubuntu 20.04 下搭建PX4MATLAB 仿真环境完成配置到如下界面&#xff1a;…

STM32F1+HAL库+FreeTOTS学习11——延时函数API

STM32F1HAL库FreeTOTS学习11——延时函数API 延时函数API1. vTaskDelay()2. vTaskDelayUntil()3. xTaskDelayUntil()相对延时和绝对延时的区别4. xTaskAbortDelay() 上一期&#xff0c;我们学习了任务相关API使用&#xff0c;这一期我们开始学习FreeRTOS延时函数的API使用 延时…

MySQL--导入SQL文件(命令行导入)

MySQL--导入SQL文件 一、前言二、导入SQL文件 一、前言 用可视化编辑工具编写&#xff0c;并且在控制台输入命令行在MySQL中导入SQL文件。 在导入SQL文件之前查看了目前存在的数据库 **目标&#xff1a;**在可视化编辑工具(这里以word文档为例&#xff09;中编写SQL语句&…

【算法竞赛】栈

栈的特点是"先进后出"。 栈在生活中的原型有:坐电梯,先进电梯的被挤在最里面,只能最后出来&#xff1b;一管泡腾片,最先放进管子的药片位于最底层&#xff0c;最后被拿出来。 栈只有唯一的出入口,从这个口进入,也从这个口弹出,这是它与队列最大的区别。 队列有一个入…

【动态规划】最大正方形

最大正方形&#xff08;难度&#xff1a;中等&#xff09; 该题对应力扣网址 思路 min_valuemin({dp[i-1][j-1],dp[i-1][j],dp[i][j-1]}) dp[i][j]min_value 关键点是正方形的右下角(n>1时)&#xff0c;通过画图&#xff0c;可以看出&#xff0c;在基础正方形22中&#x…

unordered_map/set(底层实现)——C++

目录 前言&#xff1a; 1.开散列 1. 开散列概念 2. 开散列实现 2.1哈希链表结构体的定义 2.2哈希表类即私有成员变量 2.3哈希表的初始化 2.4迭代器的实现 1.迭代器的结构 2.构造 3.* 4.-> 5. 6.&#xff01; 2.5begin和end 2.6插入 2.7Find查找 2.8erase删除 3.unordered_ma…