USART DMA方式发送

2019-10-15 20:58发布

哪位大侠给一个USART DMA发送数据的,使用库函数写的程序啊,谢谢了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
syhx8262516
1楼-- · 2019-10-16 07:58
 精彩回答 2  元偷偷看……
syhx8262516
2楼-- · 2019-10-16 09:25
syhx8262516 发表于 2012-9-23 22:50
回复【4楼】 5498折戟沉沙 :
---------------------------------
额,我把代码共享出来吧,是库函数的, ...

参考了您的代码,有如下疑问,请教一下,
发送时,代码中有如下两个等待:       
while(DMA_GetFlagStatus(DMA1_FLAG_TC4) == RESET);
while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
第一个理解为:DMA传输完成,
第二个是等UASRT发送完成,
如果程序中还是需要判断usart的TC标志的话,那使用DMA不是还需要CPU等待吗?
DMA的本意难道不是发送不需要CPU参与吗?

但是如果不判断TC标志,如果usart还没发送完成,程序中DMA有可能再次使能,这样会不会有问题?

麻烦大家指点一下
5498折戟沉沙
3楼-- · 2019-10-16 15:04
Enderow 发表于 2016-12-24 13:07
既然用了DMA的usart,他DMA传输是保证了USART的传输节点的,不像内存到内存,全速传输,所以判断DMA完成 ...

谢谢指点,

一周热门 更多>