DMA通信读取UART接收值的问题

2019-07-20 09:14发布

用DMA读取串口接收值(外设到内存,把UART->DR读取到自己定义的一个数组)时,设置DMA_InitStructure.DMA_BufferSize = 8是什么意思?网上很多人说这就代表读取8个字节的数据之后完成DMA,然后进入TC中断(TCIF已经置位)。但是大家都知道DMA读取寄存器的速度要远远大于串口通信的速度,那么这八次读取会不会出现因为串口太慢来不及更新DR而导致读取的八个值都一样的情况?还是说只有在串口的DR更新之后才会发送DMA请求继而把串口接收到的字节写入内存?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
美丽的时光机器
1楼-- · 2019-07-21 05:49
 精彩回答 2  元偷偷看……
美丽的时光机器
2楼-- · 2019-07-21 07:31
静水k深流 发表于 2016-4-4 16:27
为什么我把DMA设置成普通模式不循环,然后用串口给单片机发送01 02 03这三个字节,在DMA的TC中断服务函数 ...

清除DMA传输完成标志试试

一周热门 更多>