使用ch32v307移植FatFs,再次打開已經寫入的數據的文件,提示沒有此文件的問題

各位大佬好,我是個新人菜鳥,希望大佬能指點下,萬分感謝。

在移植FatFs的過程中出現了一個詭異的問題:掛載成功--新建文件(f_open)成功--寫入數據成功--讀取寫入的數據也成功--關閉文件成功。但是再次打開這個文件的時候,就會提示找不到的這個文件(FRESULT的報錯編號為4),找了好幾天的依然沒有找到問題的原因。包括在f_write()后增加一個刷新緩存的函數f_sync(),依然沒有解決。

Flash----W25Q128

FatFs版本---- FatFs R0.15

SPI參考的是官方例程:SPI_FLASH

移植參考野火的教程

下面是部分代碼

int?main(void)
{
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
	SystemCoreClockUpdate();
	Delay_Init();
	USART_Printf_Init(115200);	
	SPI_Flash_Init();
	printf("SystemClk:%d\r\n",SystemCoreClock);
	printf(?"ChipID:%08x\r\n",?DBGMCU_GetCHIPID()?);
	printf("FatFs文件系統(tǒng)的移植\r\n");

	res?=?f_mount(&fsObject,?"1:",?1);
	if(res?==?FR_NO_FILESYSTEM)?????????????????????????????????//?flash沒有文件系統(tǒng)時進行格式化,創(chuàng)建文件系統(tǒng)
	{
	????printf("FLASH中還沒有文件系統(tǒng),開始格式化FLASH,創(chuàng)建文件系統(tǒng)\r\n");
	????res?=?f_mkfs("1:",?0,?work,?sizeof(work));??????????????//?格式化flash
	????res?=?f_unmount?("1:");
	????res?=?f_mount(&fsObject,?"1:",?1);
	}
	printf("文件系統(tǒng)掛載,枚舉編號:%d\r\n",res);

	res?=?f_open(&fp,?"1:test.txt",?FA_OPEN_ALWAYS?|?FA_WRITE?|?FA_READ);
	if?(res?==?FR_OK)
	{
	????printf("打開文件文件成功,枚舉編號:%d\r\n",res);
????????res?=?f_write(&fp,?wData,?16,?&bw);
????????f_sync(&fp);
????????printf("寫入文件,其結果的枚舉編號:%d\r\n",res);
????????if?(res?==?FR_OK)
????????{
????????????printf("已經寫入的字符個數:%d\r\n",bw);
????????????printf("test.txt文件中的字節(jié)數:%d\r\n",f_size(&fp));

????????}
????}
	res?=?f_close(&fp);
	printf("寫完關閉文件,其結果的枚舉編號:%d\r\n",res);
	res?=?f_open(&fp,?"1:test.txt",?FA_WRITE?|?FA_READ);
	printf("打開文件準備開始讀,其結果的枚舉編號:%d\r\n",res);
	if?(res?==?FR_OK)
	{
????????printf("打開文件成功!\r\n");
????????f_rewind(&fp);??????????????????????????????????????//?將光標重新定位到開始,
????????res?=?f_read(&fp,?rData,?f_size(&fp),?&br);
????????printf("已經讀出的字符個數:%d\r\n",br);
????????if?(res?==?FR_OK)
????????{
????????????printf("文件的內容:%s\r\n",rData);
????????}
????}
????res?=?f_close(&fp);
????printf("讀完關閉文件,其結果的枚舉編號:%d\r\n",res);
	while(1)
????{

	}
}


您好,可以參考下圖調用截圖圈出的語句試一下,若方便,可將工程發(fā)至我的郵箱(lzs@wch.cn)這邊具體看一下

image.png


@TECH62?您好郵件已經發(fā)送。麻煩您了


請問問題解決了嗎?怎么解決的呢?


您好,參考一下該貼回復

http://www.findthetime.net/bbs/thread-122751-1.html

?


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频