说明
此文件主要是配置SDIO自带的DMA。
这个源文件内容比较少:
(1)使用函数HAL_SDEx_ConfigDMAMultiBuffer配置buffer0和buffer1的起始地址以及大型。
(2)多缓冲的读写操作是通过函数HAL_SDEx_ReadBlocksDMAMultiBuffer和HAL_SDEx_WriteBlocksDMAMultiBuffer实现。
1、函数HAL_StatusTypeDef HAL_SDEx_ConfigDMAMultiBuffer(SD_HandleTypeDef *hsd, uint32_t *pDataBuffer0, uint32_t *pDataBuffer1, uint32_t BufferSize)
(1)配置的双缓冲,两个缓冲大小必须是一样的。
2、函数HAL_StatusTypeDef HAL_SDEx_ReadBlocksDMAMultiBuffer(SD_HandleTypeDef *hsd, uint32_t BlockAdd, uint32_t NumberOfBlocks)
(1)实现从地址BlockAdd开始读取NumberOfBlocks个块
3、函数HAL_StatusTypeDef HAL_SDEx_WriteBlocksDMAMultiBuffer(SD_HandleTypeDef *hsd, uint32_t BlockAdd, uint32_t NumberOfBlocks)
(1)实现从地址BlockAdd开始写入NumberOfBlocks个块
4、函数HAL_StatusTypeDef HAL_SDEx_ChangeDMABuffer(SD_HandleTypeDef *hsd, HAL_SDEx_DMABuffer_MemoryTypeDef Buffer, uint32_t *pDataBuffer)
(1)在运行状态下修改buffer0和buffer1的地址,如果当前在用buffer0,那么可修改buffer1,反之亦然。 |