DMA初始化流程总结

使用方法由HAL库提供:

  第1步:基本的初始化。

  •   函数HAL_MDMA_Init配置MDMA的基本参数。

 

  第2步:列表模式。

  • 如果使用列表模式,用户可以使用函数HAL_MDMA_LinkedList_CreateNode创建节点,再通过函数HAL_MDMA_LinkedList_AddNode将节点添加到列表里面。

 

  第3步:查询模式。

  •   函数HAL_MDMA_Start 启动传输。
  •   函数HAL_MDMA_PollForTransfer 查询传输完成。
  •   函数HAL_MDMA_Abort 终止传输。

 

  第4步:中断方式。

  •  函数HAL_NVIC_SetPriority设置MDMA中断优先级。
  •  函数HAL_NVIC_EnableIRQ使能中断。
  •  函数HAL_MDMA_Start_IT启动中断传输。
  •  MDMA的中断服务程序MDMA_IRQHandler里面调用HAL_MDMA_IRQHandler,如果用户注册了各种回调函数,会在此函数里面执行。
  •  函数HAL_MDMA_Abort_IT可以终止MDMA中断传输,终止完成后,会调用回调函数XferAbortCallback(如果设置了的话)

 

  第5步:中断回调函数。

函数HAL_MDMA_RegisterCallback注册回调函数,函数HAL_MDMA_UnRegisterCallback取消注册回调函数。

  •   XferCpltCallback            : 传输完成回调。
  •   XferBufferCpltCallback      : buffer传输完成回调。
  •   XferBlockCpltCallback       : block 传输完成回调。
  •   XferRepeatBlockCpltCallback : repeated block传输完成回调。
  •   XferErrorCallback           : 传输错误回调。
  •   XferAbortCallback          : 传输终止回调。

 

你可能感兴趣的:(单片机)