• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32H7的DMA初始化问题

瞩目人kri 2018-08-13 浏览量:2642
HAL_StatusTypeDef HAL_SD_ReadBlocks_DMA(SD_HandleTypeDef *hsd uint8_t *pData uint32_t BlockAdd uint32_t NumberOfBlocks);
HAL_StatusTypeDef HAL_SD_WriteBlocks_DMA(SD_HandleTypeDef *hsd uint8_t *pData uint32_t BlockAdd uint32_t NumberOfBlocks);
HAL_StatusTypeDef       HAL_ADC_Start_DMA(ADC_HandleTypeDef* hadc uint32_t* pData uint32_t Length);
请问H7的HAL中每个外设都有类似上面函数,但是我看函数里面也没有开DMA的时钟,而且最近看原子哥SD卡实验的例程,例程里面似乎也没有做DMA的初始化。。不知道是不是我看漏了,请各位大神指教。
1 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 可以搜一下这两个API,是用于开启DMA时钟的

    TIM截图20180813235531.png

    至于DMA的初始化,一般放在MspInit函数里面的,它现在DMA时钟初始化跟其他DMA配置不是放在一起的

    • 发布于 2018-08-13
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:6
  • dma有时钟开启的,你看我们寄存器版本代码。不过SD卡驱动,没有提供DMA了。。直接全部是查询方式的。
    • 发布于2018-08-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 打开DMA时钟,配置DMA数据源与触发方式
    • 发布于2018-08-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种情况要使用HAL库进行时钟的使能才可以操作的,首先要打开DMA的时钟
    • 发布于2018-08-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 你可以参考一下原子的H7教程,里面有DMA的章节,有详细的代码教程
    • 发布于2018-08-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 只要例程中有DMA外设的使用就必须打开dma时钟的,你可以全局搜索一下dma1_clk_enable相关的函数。
    • 发布于2018-08-31
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32H7的DMA初始化问题