我对 FATF 库和 STM32F7 系列有一些问题。我想将 SD 卡(32GB、SanDisk、FAT32)与 F746G-Discovery-Board 连接以在其上保存一些数据。(起初是 .txt 文件,后来阅读 .csv 文件以可视化一些测量数据)。
我的问题是,f_mount函数给了我一个“FR_OK”,但在下一步我不能用f_open打开一个文件。我通过一步步调试找到了问题所在。它位于 FatFs 库的 ff.c 文件中。
res = find_volume(&path, &fs, mode);
此时程序停止。跳入函数问题如下
stat = disk_initialize(fs->drv); /* Initialize the physical drive */
所以 SD 卡没有初始化/安装?但是为什么 f_mount 会给我 FR_OK?
如果有人可以提供帮助,那就太好了。谢谢!
我尝试了以下事情:
- 格式化的 SD 卡 (exFat,..)
-其他路径
主要:
FIL fil;
FRESULT fr;
FATFS FatFs;
fr=f_mount(&FatFs,(TCHAR const*)SDPath,1);
if(fr!= FR_OK)
{
Error_Handler();
}
else if (fr == FR_OK)
{
char path[13] = "testfile.txt";
fr = f_open(&fil, (char*)path, FA_WRITE | FA_CREATE_ALWAYS);
// File should be created
//here begins the main problem
if ( fr == FR_OK ) // File opened
{
f_printf(&fil, "%d", 1234);
}
else if (fr != FR_OK)
{
Error_Handler();
}
}
f_close(&fil);
f_mount(0,"SD",0);