STM32H7的DMA初始化问题

2019-07-20 06:40发布

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的初始化。。不知道是不是我看漏了,请各位大神指教。小弟感激不尽

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
正点原子
1楼-- · 2019-07-20 10:36
dma有时钟开启的,你看我们寄存器版本代码。不过SD卡驱动,没有提供DMA了。。直接全部是查询方式的。
qiousanxi
2楼-- · 2019-07-20 11:22
本帖最后由 qiousanxi 于 2018-8-12 09:57 编辑

sd卡的dma是专用的dma,你初始化sdmmc的中断就可以使用了,可以参考下st的dma例程。我测试过,不是很好用,而且官方代码也没有使用。但是注意sd卡数据只能读取到,AXISRAM
2939564153
3楼-- · 2019-07-20 15:15
 精彩回答 2  元偷偷看……
2939564153
4楼-- · 2019-07-20 17:03
qiousanxi 发表于 2018-8-12 09:56
sd卡的dma是专用的dma,你初始化sdmmc的中断就可以使用了,可以参考下st的dma例程。我测试过,不是很好用, ...

MDMA吗?另外请教一下,我SD卡初始化成功了,打印的信息也是对的。能擦除,但是读和写都出错了。。。我直接调用HAL库的SD外设的读写函数。不知道问题出在哪里了  
qiousanxi
5楼-- · 2019-07-20 18:29
 精彩回答 2  元偷偷看……
2939564153
6楼-- · 2019-07-20 23:02
 精彩回答 2  元偷偷看……

一周热门 更多>