串口中断和DMA中断一起使用行么?

2019-07-20 03:20发布

思路:电脑通过串口给STM32发数据,当串口接收到数据后进入中断打开DMA接收传输,当DMA传输完成后产生中断

遇到问题1:串口中断和DMA不能同时使用,求助!!!

还有个问题2:第26章DMA中断中

//开启一次DMA传输
void MYDMA_Enable(DMA_Channel_TypeDef*DMA_CHx)
{
 DMA_CHx->CCR&=~(1<<0);       //关闭DMA传输
 DMA_CHx->CNDTR=DMA1_MEM_LEN; //DMA1,传输数据量
 DMA_CHx->CCR|=1<<0;          //开启DMA传输

如果只传输一次,DMA不就一直处于打开状态吗?为什么不在DMA初始化时直接打开DMA传输,而要构建一个单独的函数呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
zhang164534
1楼-- · 2019-07-21 06:21
用一个中断就行了,,就接收个串口数据,开两个中断,你意欲何在啊。。。
pigeon226
2楼-- · 2019-07-21 08:30
 精彩回答 2  元偷偷看……
pigeon226
3楼-- · 2019-07-21 08:41
 精彩回答 2  元偷偷看……
pigeon226
4楼-- · 2019-07-21 14:13
回复【8楼】正点原子:
---------------------------------
谢原子哥
RSY
5楼-- · 2019-07-21 18:58
 精彩回答 2  元偷偷看……
linqing171
6楼-- · 2019-07-21 21:37
爱上cmu 发表于 2014-10-6 17:53
回复【4楼】pigeon226:
---------------------------------
为甚么要同事用中断,这不是脱了裤子放屁吗

想低优先级的看一下有没有收到回车,这总可以吧?

一周热门 更多>