单片机/MCU论坛
直播中

王尊

4年用户 4经验值
擅长:嵌入式技术
私信 关注
[问答]

为什么用FatFS在SD卡创建文件,在单片机上读写正常,用读卡器插到电脑上就什么都没有

用的是HC32F4A0+SDIOC+FatFS0.15版本

  • 用之前在电脑上对SD卡格式化为Fat32格式了
  • 为了确定文件真的写入了SD卡,而不是在读取缓存,写入文件后,将文件关闭,再以READ模式打开,进行读取,是可以读到的。
    可读.png

但是把SD卡插到读卡器上,看到的就是空白。有没有大佬知道这是为什么
空白.png

#include "FileEdit.h"
#include "ff.h"
#include "stdio.h"
#include "BSP_Timer_INT_Count.h"
FATFS fsobject;
FIL fp;
BYTE work[FF_MAX_SS];

const char write_buf[] = "abcdefg";
char read_buf[FF_MAX_SS] = "";
UINT bw;
UINT br;
void FatFS_Test(void)
{
	FRESULT res;
	/* 挂载文件系统 */
	res = f_mount(&fsobject, "0:", 1);	//挂载fsobject到文件系统、0: 存储器路径,也就是SD卡、1立即挂载
	if(res != FR_OK)
	{
		res = f_mkfs("0:", 0, work, sizeof(work));
		res = f_mount(NULL, "0:", 1);
		res = f_mount(&fsobject, "0:", 1);
	}

	/* 打开、创建文件 */
	f_mkdir("0:/dir0");
	res = f_open(&fp, "0:/dir0/qwerpoiu.txt", FA_CREATE_ALWAYS | FA_WRITE | FA_READ);
	if(res == LL_OK)
	{
		res = f_write(&fp, write_buf, sizeof(write_buf), &bw);
		f_close(&fp);
		
		res = f_open(&fp, "0:/dir0/qwerpoiu.txt", FA_READ);
		if(res==LL_OK)
		{
			f_lseek(&fp, 0);
			res = f_read(&fp, read_buf, f_size(&fp), &br);
			
			__nop();
		}
		else
			f_close(&fp);
	}
	f_unmount("0:");
}
奖励2积分

更多回帖

发帖
×
20
完善资料,
赚取积分