需要准备的知识点如下

>>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