STM32F407用CubeMx使用SDIO和FatFs,卡死
我使用了最新的CubeMx 4.25.1,库都是最新的,在CubeMx中添加SDIO和FATFS,使用默认配置。在MX_FATFS_Init();中添加f_mount();
然后添加BSP_SD_Init();
每当使用f_open时候,都卡在sd_read的while等待中
请问,还需要设置什么,才可以正常使用SD卡。
不错,感谢分享! FYI
调大stack到0x1000
从微雪那里看到的
把 SDIO init 里面加两句,生成的初始化有错误,少了SD初始化和四线模式初始化。加进去就什么都好了。 找到了一个问题,DMA默认是打开的,不用DMA的话,要选择DISABLE doesnt 发表于 2018-6-7 17:27
找到了一个问题,DMA默认是打开的,不用DMA的话,要选择DISABLE
这个也是 我有看过【STM32F4通过SDIO使用FatFs读取SD卡】资料很长,可以借鉴。
另外可参考STM32F407用CubeMX创建SDIO+FatFs,f_Open失败
https://www.stmcu.org.cn/module/forum/forum.php?mod=viewthread&tid=615873&fromuid=2091055
lebment 发表于 2018-6-7 16:40
把 SDIO init 里面加两句,生成的初始化有错误,少了SD初始化和四线模式初始化。加进去就什么都好了。 ...
直接在 MX_SDIO_SD_Init(); 后面添加 BSP_SD_Init();就OK了。不用添加别的了。
我用CubeMX生成的CODE看上去是使用SDIO_BUS_WIDE_1B 可是在别的函数里面又改到了4线模式。
Cortexxx 发表于 2018-6-11 17:08
直接在 MX_SDIO_SD_Init(); 后面添加 BSP_SD_Init();就OK了。不用添加别的了。
我用CubeMX生成的CODE看上 ...
是有这种情况,得加两句。 lebment 发表于 2018-6-11 19:15
是有这种情况,得加两句。
我今天又试了一下,发现不加BSP_SD_Init(); 是可以的.
SDIO的initial在MX_FATFS_Init()这个函数里面。 SD_Driver这个结构体了里面有初始化。
void MX_FATFS_Init(void)
{
/*## FatFS: Link the SD driver ###########################*/
retSD = FATFS_LinkDriver(&SD_Driver, SDPath);
/* USER CODE BEGIN Init */
/* additional user code for init */
/* USER CODE END Init */
}
页:
[1]