你好。
我尝试在 NUCLEO-F411RE 板上的
STM32F411RE 上用 fatfs 测试 sdcard。
我没有 100% 确定的硬件或软件,所以如果它是软件或硬件问题,我很难调试。
我已经阅读了一些主题,其中一个是 sd 初始化问题(但在我的版本中这个问题已经解决了)。
我已经三次检查了所有连接,当卡不在插座中时,我得到了快速响应。
我已经从 stm32cubemx 生成了代码,并添加了自定义代码:
/* 初始化所有配置的外设 */
MX_GPIO_Init();
MX_SDIO_SD_Init();
MX_FATFS_Init();
/* 用户代码开始 2 */
结果结果;
FATFS SDFatF;/* SD 磁盘逻辑驱动器的文件系统对象 */
填写我的文件;/* 文件对象 */
res = f_mount(&SDFatFs, (TCHAR const*)SDPath, 0);
如果(res!= FR_OK)
同时(1);
res= f_open(&MyFile, ''STM32.TXT'', FA_CREATE_ALWAYS | FA_WRITE);
如果(res!= FR_OK)
同时(1);
/* 用户代码结束 2 */f_mount 没问题,但
f_open在大约 30 秒后返回一个
FR_DISK_ERR。当插座中没有卡时,我会快速返回
FR_NOT_READY。
执行 f_open 时,函数卡在 ff.c 的第 3050 行
fmt = check_fs(fs, bsect); /* 加载扇区 0 并检查它是否是 FAT-VBR 作为 SFD */
它 check_fs 返回 4 个代码,然后 f_open 返回 FR_DISK_ERR
我唯一做的就是将一些 SDIO 引脚更改为其他选项,并设置时钟。我试过使用高达 96 的 SDIO 分频器,但它没有解决我的问题。
我忘记了什么吗?我知道插座在跳线上,但在 250khz 时钟下它应该可以工作......当然尝试了一些卡,尝试使用 f_mkfs 格式化卡......
我是我正在使用的软件:
Attolic True工作室 v9.0
STM32Cube FW_F4 V1.19.0
FatFs R0.12c
STM32Cube 4.24