:)
首先原谅我的英语不好。我希望你能理解我的写作。
我的目标是为学生项目构建一个高精度(24 位)数据记录器,将数据存储到 SD 卡中。我使用 Arduino Due (ATSAM3X8E) 和额外的带有 SD 卡连接器的自制屏蔽。
此外,我使用 Atmel Studio 6.2 和 ASF 库“SPI 接口上的 SD/MMC 堆栈”和“FatFS 文件系统”。
完全可以通过 spi 使用 sd/mmc 模块进行读写,但没有文件系统。所以硬件工作正常。
我想我的错误可以定位在 FatFS 模块中。
在 main.c 我调用以下函数:
sd_mmc_init();
sd_mmc_check(SD_SLOT); //直到这个程序工作,我可以用终端窗口读写有效值
f_mount(LUN_ID_SD_MMC_0_MEM, &fs);
//它返回 FR_OK 但这里可能是第一个小错误,因为我不确定我是否选择了正确的 LUN。
- f_open(&file_object,(char const *)test_file_name, FA_CREATE_ALWAYS | FA_WRITE);
// 这里出现错误 FR_DISK_ERR // 当我将错误跟踪到较低级别时,我来到函数: - chk_mounted(&path, &dj.fs, (BYTE)(mode & ~FA_READ)); - fmt = check_fs(fs, bsect = 0); - 然后在最低级别我的 disk_read 函数,它是 diskio.c 的一部分(附加)
稍后它必须遵循函数 f_puts 和 f_close(&file_object); 但是没有 f_open,它们就无法工作。
我附加了我的 diskio.c 文件,其中分配了导致错误的 disk_read 文件。
我真的希望有人能帮助我。谢谢大家的回答和提示!!!