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) { } } |
来源: 整理文章为传播相关技术,网络版权归原作者所有,如有侵权,请联系删除。