STM32 DMA 一次传输模式的再次启动
DMA的传输模式STM32有两种传输模式:DMA_InitTypeDef DMA_InitStructure;
<p></p><p>// DMA 模式,一次传输模式</p><p> DMA_InitStructure.DMA_Mode = DMA_Mode_Normal ;</p><p>// DMA 模式,循环模式</p><p> DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;</p>
本帖最后由 结合国际经验 于 2022-1-28 23:27 编辑
注意这里的一次传输模式是指:DMA的缓存区若是用于接收,则整个缓存区接收满了,表示一次传输完成;若是用于发送,则是整个缓存区内的数据发送完毕后,表示一次传输完成。DMA_InitTypeDef DMA_InitStructure;<div>// DMA 模式,一次传输模式</div><div> DMA_InitStructure.DMA_Mode = DMA_Mode_Normal ;</div><div>// DMA 模式,循环模式</div><div> DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;</div>
———————
一次传输模式的再次启动
若使用DMA的一次传输模式,在一次传输完成后,需要将DMA传输完成标志位删除,而后如有必要重新配置DMA,如不改变原有配置,重新启动DMA。
本帖最后由 结合国际经验 于 2022-1-28 23:26 编辑
DMA_ClearFlag(DMA1_FLAG_TC1);//清除通道1的传输完成标志位
DMA_Cmd(DMA1_Channel1,DISABLE);
DMA_Cmd(DMA1_Channel1,ENABLE);
页:
[1]