STM32 SD卡使用SDIO DMA卡死解决办法

在这里插入图片描述
在使用SDIO操作SD卡时,如果底层BootLoader也有操作SDIO,则可能(一般是SD卡出现质量问题的时候)会出现应用层一直卡死在SDIO的DMA中断里,解决办法就是在初始化的时候将相关的寄存器清空。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32H7系列微控制器支持DMA(Direct Memory Access)传输,同时也支持SDIO(Secure Digital Input/Output)接口。DMA可以在外设和存储器之间直接进行数据传输,从而减轻CPU的负担,提高系统性能。SDIO接口则用于连接外部SD卡或MMC卡,实现数据的读写操作。 在STM32H7系列微控制器中,可以通过配置DMA来实现SDIO的数据传输。首先需要初始化SDIO接口,并配置相关的时钟、引脚和工作模式。然后,配置DMA通道以及相关的传输参数,如数据长度、传输方向和缓冲区地址等。最后,启动DMA传输即可。 以下是一个简单的示例代码,用于在STM32H7系列微控制器上使用DMA进行SDIO数据传输: ```c #include "stm32h7xx.h" // 初始化SDIO接口 void SDIO_Init(void) { // 配置SDIO接口的时钟和引脚 // 配置SDIO工作模式及其他参数 } // 配置DMA通道 void DMA_Config(void) { // 配置DMA通道的相关参数,如传输方向、数据长度、缓冲区地址等 } // 启动DMA传输 void DMA_StartTransfer(void) { // 启动DMA传输 } int main(void) { // 初始化系统时钟和其他模块 // 初始化SDIO接口 SDIO_Init(); // 配置DMA通道 DMA_Config(); // 启动DMA传输 DMA_StartTransfer(); while (1) { // 等待传输完成或处理其他任务 } } ``` 请注意,以上代码仅为示例,实际应用中还需要根据具体的需求进行适当的修改和完善。此外,还需要参考STM32H7系列微控制器的技术参考手册和相关的库文件文档进行详细的配置和开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值