串口中断和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传输,而要构建一个单独的函数呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。