STM32
直播中

123

10年用户 820经验值
擅长:可编程逻辑
私信 关注
[问答]

STM32F411用sdio驱动一个2g内存卡,读取扇区进入了死循环是怎么回事?

用的F411renucleo,想用sdio驱动一个2g内存卡,可是卡的初始化成功了,想读取扇区却进入了死循环,后来发现问题在于 宽线模式下检测不到起始位,不知道是怎么造成的,于是我采用单线模式,就能读取了,有的帖子上说降低速度,可是我把分频系数升高还是不行,实在不知道怎么解决,还望工程师和各位大神帮帮忙,多谢了!

回帖(1)

申根换

2024-5-13 17:33:12
STM32F411使用SDIO驱动2G内存卡时,读取扇区进入死循环可能是由多种原因导致的。以下是一些建议和可能的解决方案:

1. 确保硬件连接正确:检查STM32F411与SD卡之间的硬件连接,确保所有引脚都正确连接,特别是SDIO的数据线和时钟线。

2. 检查SD卡初始化:确保SD卡已正确初始化,包括设置工作电压、时钟频率等。可以尝试使用不同的初始化参数,以找到适合你的硬件配置的设置。

3. 降低时钟频率:如果问题仍然存在,可以尝试降低SDIO的时钟频率。虽然你提到已经尝试过提高分频系数,但降低时钟频率可能有助于解决死循环问题。

4. 使用单线模式:你提到在单线模式下可以成功读取,那么可以考虑继续使用单线模式。虽然单线模式的速度较慢,但如果能满足你的需求,也是一个可行的解决方案。

5. 检查代码逻辑:仔细检查你的代码,确保在读取扇区时没有逻辑错误。例如,检查是否正确处理了读取操作的状态,以及是否正确处理了错误情况。

6. 使用STM32 HAL库:如果你还没有使用STM32的HAL库,可以尝试使用它来简化SDIO操作。HAL库提供了一套简化的API,可以减少出错的可能性。

7. 参考其他示例代码:查找其他STM32F411与SD卡通信的示例代码,看看是否有与你遇到的问题类似的解决方案。

8. 检查SD卡:确保SD卡本身没有问题。可以尝试使用另一张SD卡,或者将当前SD卡插入其他设备(如电脑或手机)进行测试,以排除SD卡故障的可能性。

9. 更新固件:确保你的STM32F411的固件是最新版本,以避免可能的已知问题。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分