STM32 FATFS追加数据成功但是读取时没有读取新追加的内容

img

int main(void)
{

LED_Init();   //LED初始化 
BEEP_Init();
delay_init();             //延时函数初始化    
LOCK_Init();
Usart1_Init(115200);//115200波特率 debug串口
Usart2_Init(115200);//115200波特率 
Usart3_Init(115200);//115200波特率 

UsartPrintf(USART_DEBUG,"****** 这是一个SPI FLASH 文件系统实验 ******\r\n");


//在外部SPI Flash挂载文件系统,文件系统挂载时会对SPI设备初始化
//初始化函数调用流程如下
//f_mount()->find_volume()->disk_initialize->SPI_FLASH_Init()
res_flash = f_mount(&fs,"1:",1);
/*----------------------- 格式化测试 -----------------*/  
/* 如果没有文件系统就格式化创建创建文件系统 */
if(res_flash == FR_NO_FILESYSTEM)
{
    UsartPrintf(USART_DEBUG,"》FLASH还没有文件系统,即将进行格式化...\r\n");
/* 格式化 */
    res_flash=f_mkfs("1:",0,0);                            
    
    if(res_flash == FR_OK)
    {
        UsartPrintf(USART_DEBUG,"》FLASH已成功格式化文件系统。\r\n");
  /* 格式化后,先取消挂载 */
        res_flash = f_mount(NULL,"1:",1);            
  /* 重新挂载    */            
        res_flash = f_mount(&fs,"1:",1);
    }
    else
    {
        LED1 = 0;
        UsartPrintf(USART_DEBUG,"《《格式化失败。》》\r\n");
        while(1);
    }
}

else if(res_flash!=FR_OK)
{
UsartPrintf(USART_DEBUG,"!!外部Flash挂载文件系统失败。(%d)\r\n",res_flash);
UsartPrintf(USART_DEBUG,"!!可能原因:SPI Flash初始化不成功。\r\n");
while(1);
}
else
{
UsartPrintf(USART_DEBUG,"》文件系统挂载成功,可以进行读写测试\r\n");
}

res_flash=f_mkfs("1:",0,0);            
if(res_flash == FR_OK)
{
     UsartPrintf(USART_DEBUG,"格式化成功\r\n");
}

/* 打开文件,每次都以新建的形式打开,属性为可写 */
UsartPrintf(USART_DEBUG,"\r\n****** 即将进行文件写入测试... ******\r\n");    
//res_flash = f_open(&fnew, "1:FatFs读写测试文件.txt",FA_CREATE_ALWAYS | FA_WRITE );
res_flash = f_open(&fnew, "1:FatFs.txt", FA_OPEN_ALWAYS|FA_WRITE );
UsartPrintf(USART_DEBUG,"》第一次写时原文件大小:%d\r\n",f_size(&fnew));
if ( res_flash == FR_OK )
{
    UsartPrintf(USART_DEBUG,"》打开/创建FatFs读写测试文件.txt文件成功,向文件写入数据。\r\n");

    /* 将指定存储区内容写入到文件内 */
    res_flash=f_write(&fnew,WriteBuffer,sizeof(WriteBuffer),&fnum);
    if(res_flash==FR_OK)
    {
        UsartPrintf(USART_DEBUG,"》文件写入成功,写入字节数据:%d\n",fnum);
        UsartPrintf(USART_DEBUG,"》向文件写入的数据为:\r\n%s\r\n",WriteBuffer);
    }
    else
    {
        UsartPrintf(USART_DEBUG,"!!文件写入失败:(%d)\n",res_flash);
    }  
    /* 不再读写,关闭文件 */
f_close(&fnew);
}
else
{    
    LED1 = 0;
    UsartPrintf(USART_DEBUG,"!!打开/创建文件失败。\r\n");
}


UsartPrintf(USART_DEBUG,"\r\n****** 即将进行文件再次写入测试... ******\r\n");    
res_flash = f_open(&fnew, "1:FatFs.txt", FA_OPEN_ALWAYS|FA_WRITE );
UsartPrintf(USART_DEBUG,"》再次写时原文件大小:%d\r\n",f_size(&fnew));
if ( res_flash == FR_OK )
{
    UsartPrintf(USART_DEBUG,"》打开/创建FatFs读写测试文件.txt文件成功,向文件再次写入数据。\r\n");
    /*  文件定位 */
    res_flash = f_lseek(&fnew,f_size(&fnew));
    if (res_flash == FR_OK)
    {
        /* 将指定存储区内容写入到文件内 */
        res_flash=f_write(&fnew,Tx_Buffer,sizeof(Tx_Buffer),&fnum);
        if(res_flash==FR_OK)
        {
            UsartPrintf(USART_DEBUG,"》文件再次写入成功,再次写入字节数据:%d\n",fnum);
            UsartPrintf(USART_DEBUG,"》向文件再次写入的数据为:\r\n%s\r\n",Tx_Buffer);
        }
        else
        {
            UsartPrintf(USART_DEBUG,"!!文件再次写入失败:(%d)\n",res_flash);
        }    
    }
    /* 不再读写,关闭文件 */
f_close(&fnew);
}
else
{    
    LED1 = 0;
    UsartPrintf(USART_DEBUG,"!!再次打开/创建文件失败。\r\n");
}





UsartPrintf(USART_DEBUG,"****** 即将进行文件读取测试... ******\r\n");
//res_flash = f_open(&fnew, "1:FatFs读写测试文件.txt",FA_OPEN_EXISTING | FA_READ);
res_flash = f_open(&fnew, "1:FatFs.txt",FA_OPEN_ALWAYS|FA_READ);
UsartPrintf(USART_DEBUG,"》读取时文件大小:%d\r\n",f_size(&fnew));
if(res_flash == FR_OK)
{
    LED0= 0;
    UsartPrintf(USART_DEBUG,"》打开文件成功。\r\n");
    res_flash = f_read(&fnew,ReadBuffer,f_size(&fnew),&fnum);
    if(res_flash==FR_OK)
    {
        UsartPrintf(USART_DEBUG,"》文件读取成功,读到字节数据:%d\r\n",fnum);
        UsartPrintf(USART_DEBUG,"》读取得的文件数据为:\r\n%s \r\n", ReadBuffer);    
    }
    else
    {
        UsartPrintf(USART_DEBUG,"!!文件读取失败:(%d)\n",res_flash);
    }    
}
else
{
    LED1 = 0;
    UsartPrintf(USART_DEBUG,"!!打开文件失败。\r\n");
}
/* 不再读写,关闭文件 */
f_close(&fnew);    

/* 不再使用文件系统,取消挂载文件系统 */
//f_mount(NULL,"1:",1);

/* 操作完成,停机 */
while(1)
{
}
}

把打印buff设置大一些