需要准备的知识点如下
>>calc:计算(calculation) >>shift:转移; >>bitshift:位移量 >>calcBaseAndBitshift:计算偏移地址 >>DMA传输有两种:一种是DMA传输;另一种是能触发中断的DMA传输 >>Abort:中止 >>Polling :轮询
提供DMA流程框图进行查看:图1
DMA系统流程如下:图2
Functions
DMA_SetConfig | 设置DMA传输参数 //注意是传输参数:双方地址,数据长度;参考图2 |
---|---|
DMA_CalcBaseAndBitshift | 根据DMA流的编号给用户返回DMA Stream的地址 |
DMA_CheckFifoParam | 检查FIFO阈值水平和内存大小是否兼容 |
HAL_DMA_Init | 初始化DMA相关寄存器数值 ,参考图1 |
HAL_DMA_DeInit | 重置DMA相关寄存器的值 |
HAL_DMA_Start | 开始传输 |
HAL_DMA_Start_IT | 启动能触发中断的DMA传输 = 开始传输 |
HAL_DMA_Abort | 暂停传输 |
HAL_DMA_Abort_IT | 暂停能触发中断的DMA传输 |
HAL_DMA_PollForTransfer | 轮询DMA传输完成 !不确定 |
HAL_DMA_IRQHandler | 处理DMA中断请求 |
HAL_DMA_RegisterCallback | DMA中断回调函数的注册 //DMA中断要先将回调函数进行注册HAL_DMA_RegisterCallback() |
HAL_DMA_UnRegisterCallback | DMA中断回调函数的注销 |
HAL_DMA_GetState | 返回DMA状态 |
HAL_DMA_GetError | 返回DMA错误代码 |
注意
>>该API的中文参考文档是第一版,后面会增加细节,并纠正错误,理性参考! 时间:2020-6-14