如何使stm32用dma进行串口发送,设置DMA_Mode中的Circular和normal问题 5

大侠,初学stm32,想用dma的方式用串口给pc发送定长的数据,但是我想要按照我的时间发送。假设sendbuff[20],是我要发送的数据,我都设置好了,在DMA_Mo... 大侠,初学stm32,想用dma的方式用串口给pc发送定长的数据,但是我想要按照我的时间发送。假设sendbuff[20],是我要发送的数据,我都设置好了,在DMA_Mode中用的是DMA_Mode_Normal,之后我想在发送时,重新对dma设置,使能,但是没有执行发送的代码,只是第一次发送成功,这是为什么呢,有没有这种问题的完美解决方案,谢谢大侠。 展开
 我来答
ming_180
2013-03-09 · 超过23用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:53.7万
展开全部
如果没开中断就用查询的方式,下面是DMA1 Channel5的,其他通道类似
/* 等待DMA传输完成 */
while (!DMA_GetFlagStatus(DMA1_FLAG_TC5));
/* 清除DMA完成标志 */
DMA_ClearFlag(DMA1_FLAG_TC5);
/* 关闭DMA传输 */
DMA_Cmd(DMA1_Channel5, DISABLE);

执行完上面后就可以接着下一次发送了,中断方式类似,只是要在中断里执行后两个操作,不需要等待
百度网友5c5d20fc7
2017-08-22
知道答主
回答量:6
采纳率:0%
帮助的人:4169
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友98235678f
2013-03-02 · 超过11用户采纳过TA的回答
知道答主
回答量:153
采纳率:0%
帮助的人:28.1万
展开全部
引发DMA的中断应该是一直都有的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式