我尝试通过SPI连接到带有stm32f091cctx MCU的2GB SD卡6级。使用fatFs库ver。 R0.13a我能够安装驱动器并使用f_mount和f_open函数打开文件。但是当涉及到从文件中读取时,它只是冻结在f_read函数中的某个地方。此外,当我尝试用f_lseek更改指针的位置时,它再次冻结。 f_lseek仅在我将其写为:f_lseek(& MyFile,0)时才起作用。 我的代码的这一部分如下:
if(FATFS_LinkDriver(&SD_Driver, SDPath) == 0)
{
f_mount(&SDFatFs, (TCHAR const*)SDPath, 1);
f_open(&MyFile, "SAMPLE1.WAV", FA_READ);
f_lseek(&MyFile, 200);
f_read(&MyFile, rtext, 1000, (UINT*)&bytesread);
}
答案 0 :(得分:0)
您可能用完了堆大小并转到HardFault异常。
您可以从CubeMX增加HEAP大小 - >项目设置或直接来自** _ startup.s文件。
PS:在HardFault_Handler和Error_Handler函数中打印一些内容,以查看出现问题的时间。