请问HAL_UART_Receive_DMA函数的具体功能是什么?

2019-07-14 15:31发布



该函数是DMA方式接收数据,这不用说了,也别说使用其它方法解决我关心的是这个函数的具体功能,我理解是:将指定串口(第一个参数)发来的数据,按指定的数量(第三个参数)送到指定的缓冲区内(第二个参数);不知理解的对不对,请赐教。

一般来说,串口接收数据,只要初始化好各种参数,使能中断,然后在中断或回调函数中直接处理收到的数据就行了,为什么还要使用 HAL_UART_Receive_DMA 函数来接收数据呢?当然既然HAL_UART_Receive_DMA 函数存在,就肯定有它存在的道理,只是我不理解而已,望赐教。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
kingnet_520890
1楼-- · 2019-07-14 18:50
 精彩回答 2  元偷偷看……
TOPCB
2楼-- · 2019-07-14 21:00
仔细对比2个函数的区别,DMA可以不用等,循环判断完成标志位就可以了,普通的需要等待接收完成。
jiecai65
3楼-- · 2019-07-14 23:03
先了解下。。。。
骑猪去天山
4楼-- · 2019-07-15 02:43
kingnet_520890 发表于 2018-12-4 08:28
感谢,但你的回答我已经知道,我说的是“具体功能”。

具体功能........还要怎么具体他就是DMA 接收功能,执行这函数不需要等待接收完成.
liulei007
5楼-- · 2019-07-15 07:47
DMA的好处就是不占用CPU的资源,所以当串口有大量的数据要处理时,使用串口的DMA功能就有很多优势。
DAA000
6楼-- · 2019-07-15 12:11
 精彩回答 2  元偷偷看……

一周热门 更多>