| 完善代码: 变量:
 
 
 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;
 }
 编译下载程序。
 仿真,设断点,观察变量值:
 
   出错了。请问高手,哪里有错?谢谢!
 
 
 
 |