检查在存贮器上的文件,存贮器可以被conf_access.h配置。如果存贮器没有格式化,程序将以FAT文件系统格式化SD卡。如果已经格式化就以FAT文件系统读内容。
在Atmel Studio6.2的环境下,插入开发板则就有画面跳出
直接打开例程Fatfs
则可以看到:ASF里有Fatfs.
而程序中有两个主要函数:
以下是寻找文件的函数:
- tatic FRESULT scan_files(char *path)
- {
- FRESULT res;
- FILINFO fno;
- DIR dir;
- int32_t i;
- char *pc_fn;
- #if _USE_LFN
- char c_lfn[_MAX_LFN + 1];
- fno.lfname = c_lfn;
- fno.lfsize = sizeof(c_lfn);
- #endif
- /* Open the directory */
- res = f_opendir(&dir, path);
- if (res == FR_OK) {
- i = strlen(path);
- for (;;) {
- res = f_readdir(&dir, &fno);
- if (res != FR_OK || fno.fname[0] == 0) {
- break;
- }
- #if _USE_LFN
- pc_fn = *fno.lfname ? fno.lfname : fno.fname;
- #else
- pc_fn = fno.fname;
- #endif
- if (*pc_fn == '.') {
- continue;
- }
- /* Check if it is a directory type */
- if (fno.fattrib & AM_DIR) {
- sprintf(&path[i], "/%s", pc_fn);
- res = scan_files(path);
- if (res != FR_OK) {
- break;
- }
- path[i] = 0;
- } else {
- printf("%s/%s\n\r", path, pc_fn);
- }
- }
- }
- return res;
- }
而主函数则是 run_fatfs_test()
本程序运行结果如下:
居然显示失败。我这几天查查看,是怎么回事???
|