cube+sd+fatfs+freertos

遇到问题及解决
1 注意硬件连接,上拉
2 sd卡的检测引脚
3 加上freertos之后要在正确的任务里边(开始任务)测试
4 各部分的时钟要对。
自己记录下遇到的问题,防止以后遗忘?
///
//函数功能:在fatfs模块注册或注销一个工作区(文件系统对象)
//参数:fs:fs工作区(文件系统对象)指针,如果赋值为null,可以取消物理设备挂载
// path:注册/注销设备工作区的逻辑设备编号,使用设备根路径表示
// 0 不立即挂载 1 立即挂载
f_mount(&SDFatFS,SDPath,1) // cube 生成的挂载函数宏 在文件fatfs.h里
//格式化物理设备
FRESULT f_mkfs(const TCHAR* path, BYTE sfd, UINT au);
参数–> path:逻辑设备编号,使用设备根路径表示
sfd:0或1,0表示为硬盘设备;1表示为软盘设备
au:指定扇区大小,若为0表示通过disk_ioctl函数获取
//打开文件
FRESULT f_open(FIL* fp, const TCHAR* path, BYTE mode);
参数–> fp:将创建或打开的文件对象指针
path:文件名指针,指定将创建或打开的文件名(包含文件类型后缀名)
mode:访问类型和打开方法
mode可选值:
FA_READ 指定读访问对象。可以从文件中读取数据。 与FA_WRITE结合可以进行读写访问。
FA_WRITE 指定写访问对象。可以向文件中写入数据。与FA_READ结合可以进行读写访问。
FA_OPEN_EXISTING 打开文件。如果文件不存在,则打开失败。(默认)
FA_OPEN_ALWAYS 如果文件存在,则打开;否则,创建一个新文件。
FA_CREATE_NEW 创建一个新文件。如果文件已存在,则创建失败。
FA_CREATE_ALWAYS 创建一个新文件。如果文件已存在,则它将被截断并覆盖。
//关闭文件
FRESULT f_close (FIL fp)
参数–> fp:将被关闭的已打开的文件对象结构的指针
//写入数据到一个已打开的文件
FRESULT f_write (FIL
fp, const void buff, UINT btw, UINT bw)
参数–> fp:指向将被写入的已打开的文件对象结构的指针
buff:指向存储写入数据的缓冲区的指针
btw:要写入的字节数
bw:指向返回已写入字节数的UINT变量的指针,返回为实际写入的字节数
//从一个打开的文件读取数据
FRESULT f_read (FIL* fp, const void buff, UINT btr, UINT br)
参数–> fp:指向将被读取的已打开的文件对象结构的指针
buff:指向存储读取数据的缓冲区的指针
btr:要读取的字节数
br:指向返回已读取字节数的UINT变量的指针,返回为实际读取的字节数


//cube文件系统设置时不可以选用简体中文,不然老报错。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
FATFS是一种簇文件系统,通常用于SD卡等嵌入式设备上的文件存储。实时存储指的是数据的即时存储和读取,常用于需要实时记录和读取大量数据的应用,如数据采集、传感器数据存储等。 通过FATFSSD卡,我们可以实现实时存储功能。首先,我们需要通过适当的硬件接口将SD卡连接到嵌入式系统上。然后,通过初始化FATFS文件系统和SD卡,我们可以在系统中创建一个FATFS对象,用于文件操作。 对于实时存储,我们可以使用FATFS提供的函数来进行文件的打开、写入和关闭等操作。例如,我们可以使用f_open函数打开一个文件,使用f_write函数将数据写入文件,然后使用f_close函数关闭文件。这些函数可以根据需要进行调用,实现数据的实时存储。 为了保证实时性,我们可以使用合适的缓冲区大小和数据写入频率。可以适时地将缓冲区中的数据写入SD卡,并定期刷新缓冲区,以确保数据的及时性。 此外,为了提高数据的可靠性,我们还可以通过FATFS的错误处理机制来处理可能出现的错误。例如,当SD卡出现写错误或剩余空间不足时,可以通过错误代码来进行相应的处理,以确保数据的完整性和可靠性。 总之,通过使用FATFSSD卡,我们可以轻松实现嵌入式系统的实时存储功能。这种实时存储方案可以广泛应用于各种需要及时记录和读取大量数据的应用中,为数据采集、传感器数据存储等提供了便利和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值