完善代码:
变量:
char USBDISKPath[4]; /* 串行Flash逻辑设备路径 */
FRESULT f_res; /* 文件操作结果 */
FATFS fs; /* FatFs文件系统对象 */
FIL file; /* 文件对象 */
BYTE WriteBuffer[]= "Hello World!";/* 写缓冲区*/
UINT fnum; /*文件成功读写变量 */
BYTE ReadBuffer[1024]={0}; /* 读缓冲区 */
UINT Flag=0;
增加一个函数:
static void read_write_flie(void)
{
/*----------------------- 文件系统测试,写测试 -----------------------------*/
/* 打开文件,如果文件不存在则创建它 */
f_res = f_open(&file, "ccb.txt",FA_CREATE_ALWAYS | FA_WRITE );
if ( f_res == FR_OK )
{
/* 将指定存储区内容写入到文件内 */
f_res=f_write(&file,WriteBuffer,sizeof(WriteBuffer),&fnum);
if(f_res==FR_OK)
{
}
else
{
}
/* 不再读写,关闭文件 */
f_close(&file);
}
else
{
}
/*------------------- 文件系统测试:读测试 ------------------------------------*/
f_res = f_open(&file, "ccb.txt", FA_OPEN_EXISTING | FA_READ);
if(f_res == FR_OK)
{
f_res = f_read(&file, ReadBuffer, sizeof(ReadBuffer), &fnum);
if(f_res==FR_OK)
{
}
else
{
}
}
else
{
}
/* 不在读写,关闭文件 */
f_close(&file);
}
大循环增加这一段代码:
if(Flag==0)
{
f_res = f_mount(&fs,"0:",1); /* 在串行FLASH挂载文件系统,文件系统挂载时会对串行FLASH初始化 */
if(f_res != FR_OK)
{
//continue;
}
read_write_flie(); /* 读取根目录下的文件内容 */
Flag=1;
}
编译下载程序。
仿真,设断点,观察变量值:
出错了。请问高手,哪里有错?谢谢!
|