fatfs文件系统写成功,打开文件成功读取失败或者打开文件失败

格式化flash重新挂载

具体方法:

步骤1:挂载文件系统

FRESULT result;

result = f_mount(&fs, "0:", 1); /* Mount a logical drive */

步骤2:格式化文件系统

result = f_mkfs("0:",0,0);

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在嵌入式开发中,FATFS是一个流行的文件系统库,用于在基于微控制器(如Arduino、STM32等)的系统读取入USB闪存驱动器(通常称为U盘)。这个文件系统支持FAT16和FAT32这两种常见的文件系统,适合于资源受限的设备。 以下是使用FATFS进行U盘读的基本步骤: 1. **包含头文件**: 在C代码中,首先需要包含`ff.h`,这是FATFS库的主要头文件: ```c #include "ff.h" ``` 2. **初始化**: 初始化FATFS库,这通常发生在程序开始时,例如: ```c DRESULT dinit(void) { FRESULT res; if ((res = fatfs_init()) != FR_OK) { // 处理错误 return res; } return FR_OK; } ``` 3. **挂载文件系统**: 根据硬件配置,选择正确的驱动器标号来挂载U盘,假设标号为0: ```c DRESULT dfu_mount(const char* path, const char* drv_path) { return f_mount(0, drv_path, &fs); } ``` 其中`drv_path`应指向U盘的实际路径或设备名。 4. **打开文件**: 使用`f_open()`打开要操作的文件,如果成功返回一个文件描述符,失败则返回FR_NO_FILE: ```c int file_fd = f_open("test.txt", FA_READ | FA_WRITE); ``` 5. **读数据**: 对于读取,使用`f_read()`;对于入,使用`f_write()`。例如: ```c uint8_t buffer[1024]; FRESULT read_res = f_read(file_fd, buffer, sizeof(buffer), 0); // 从当前位置读取 FRESULT write_res = f_write(file_fd, buffer, sizeof(buffer), 0); // 入当前位置 ``` 6. **关闭文件和卸载文件系统**: 最后记得关闭文件并清理: ```c f_close(file_fd); fatfs_unmount(); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值