打印
[STM32F1]

STM32 DMA 一次传输模式的再次启动

[复制链接]
457|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 17:32 | 只看该作者
本帖最后由 结合国际经验 于 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>

———————

使用特权

评论回复
板凳
结合国际经验|  楼主 | 2022-1-28 23:21 | 只看该作者
一次传输模式的再次启动
若使用DMA的一次传输模式,在一次传输完成后,需要将DMA传输完成标志位删除,而后如有必要重新配置DMA,如不改变原有配置,重新启动DMA。

使用特权

评论回复
地板
结合国际经验|  楼主 | 2022-1-28 23:23 | 只看该作者
本帖最后由 结合国际经验 于 2022-1-28 23:26 编辑


DMA_ClearFlag(DMA1_FLAG_TC1);//清除通道1的传输完成标志位
DMA_Cmd(DMA1_Channel1,DISABLE);
DMA_Cmd(DMA1_Channel1,ENABLE);

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

601

帖子

1

粉丝