野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 898|回复: 1

【火哥求救】fatfs移植为什么读取的内容和写入的不一样呀

[复制链接]
发表于 2024-4-3 14:18:35 | 显示全部楼层 |阅读模式
/**
  ******************************************************************************
  * @file    main.c
  * @author  fire
  * @version V1.0
  * @date    2015-xx-xx
  * @brief   SPI FLASH基本读写例程
  ******************************************************************************
  * @attention
  *
  * 实验平台:野火  STM32 F407 开发板
  * 论坛    :http://www.firebbs.cn
  * 淘宝    :https://fire-stm32.taobao.com
  *
  ******************************************************************************
  */

#include "stm32f4xx.h"
#include "./led/bsp_led.h"
#include "./usart/bsp_debug_usart.h"
#include "./flash/bsp_spi_flash.h"
#include "ff.h"
#include <string.h>



FATFS fs;
FRESULT res;
FIL fil;
UINT bw;
UINT br;

#define STR_WRITE   "1100"

char read_buff[100];

int main(void)
{        
        LED_GPIO_Config();
        LED_BLUE;
       
        /* 配置串口1为:115200 8-N-1 */
        Debug_USART_Config();

        printf("\r\n这是一个文件系统移植实验 \r\n");
       
        res = f_mount(&fs, "1:", 1);
       
        printf("\r\nfmount res=%d", res);
       
        if(res == FR_NO_FILESYSTEM)
        {
                //格式化
                res = f_mkfs("1:", 0, 0);
                printf("\r\nf_mkfs res=%d", res);
                //格式化后需要重新挂载文件系统
                res = f_mount(NULL, "1:", 1);
               
                res = f_mount(&fs, "1:", 1);
        }
       
        res = f_open(&fil, "1:mes.txt", FA_CREATE_ALWAYS | FA_READ | FA_WRITE);
        printf("\r\nf_open res=%d", res);
       
        res = f_write(&fil, STR_WRITE, strlen(STR_WRITE) ,&bw);
        printf("\r\nf_write res=%d len=%d bw=%d",res,strlen(STR_WRITE),bw);
       
        res = f_close(&fil);
        printf("\r\nf_close res=%d", res);
       
        res = f_open(&fil, "1:mes.txt", FA_OPEN_EXISTING|FA_READ);
        printf("\r\nf_open res=%d", res);
       
        res = f_read(&fil, read_buff, 30, &br);
        printf("\r\nf_read res=%d  br=%d", res, br);
       

        printf("\r\n读取到的文件内容:\r\n");
        printf("%s", read_buff);
       
        res = f_close(&fil);
        printf("\r\nf_close res=%d", res);
       
        while(1);  
}


void Delay(__IO uint32_t nCount)
{
  for(; nCount != 0; nCount--);
}


/*********************************************END OF FILE**********************/


微信图片_20240403141757.png
回复

使用道具 举报

发表于 2024-4-5 10:21:54 | 显示全部楼层
先主要对比下disk.c读写接口函数和例程部分
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 18:30 , Processed in 0.123606 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表