这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 【转载】使用DMA通道要注意的两个地方--from三叶

共1条 1/1 1 跳转至

【转载】使用DMA通道要注意的两个地方--from三叶

工程师
2024-05-22 00:07:23     打赏
void I2SDMA_Start(void)
{         
    DMA_Cmd(DMA1_Stream4, ENABLE);
   
    /*
       检测DMA通道是否被正确的使能。
       如果DMA配置错误的话,使能位会被硬件清除,从而使得DMA无法启动。
       比如DMA的FIFO配置错误等等都会导致使能位被硬件清除。
    */
    while(DMA_GetCmdStatus(DMA1_Stream4) != ENABLE)
    {
    }
}
void I2SDMA_Stop(void)
{        
    DMA_Cmd(DMA1_Stream4, DISABLE);
    /*
      检查DMA是否被成功的禁止,只有成功禁止了,才能进行DMA的配置。
      Note:相同的DMA_Stream被多次配置的话,这一步就尤其重要了。在不过的禁止,使能,禁止,使能
      DMA通道的过程中,只有数据传输结束了,DMA禁止才有效。只有DMA被禁止的情况下,重新配置才有效。
      当然,如果只配置一次,这一步可以忽略。
    */
    while(DMA_GetCmdStatus(DMA1_Stream4) != DISABLE)
    {
    }
}

来源: 整理文章为传播相关技术,网络版权归原作者所有,如有侵权,请联系删除。


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]