空闲中断本身与数据收发无关,你的问题核心是使用LL库组织代码时没法实现UART的DMA传输吧。 你先用CubeMx配置完成后,生成基于LL库的初始化代码。然后像下面一样组织用户代码,实现UART的 DMA收发是没有问题的,注意代码顺序。我使用H7芯片做了测试,可以正常运行。 /* Enable DMA RX Interrupt */ LL_USART_EnableDMAReq_RX(USART1); /* Enable DMA TX Interrupt */ LL_USART_EnableDMAReq_TX(USART1); LL_DMA_ConfigAddresses(DMA1, LL_DMA_STREAM_0, LL_USART_DMA_GetRegAddr(USART1, LL_USART_DMA_REG_DATA_RECEIVE), (uint32_t)RxBuffer, LL_DMA_DIRECTION_PERIPH_TO_MEMORY); LL_DMA_SetDataLength(DMA1, LL_DMA_STREAM_0, Length_RX); LL_DMA_ConfigAddresses(DMA1, LL_DMA_STREAM_1, (uint32_t)TxBuffer, LL_USART_DMA_GetRegAddr(USART1, LL_USART_DMA_REG_DATA_TRANSMIT), LL_DMA_DIRECTION_MEMORY_TO_PERIPH); LL_DMA_SetDataLength(DMA1, LL_DMA_STREAM_1, Length_TX); /* Enable DMA Channel Rx */ LL_DMA_EnableStream(DMA1, LL_DMA_STREAM_0); /* Enable DMA Channel Tx */ LL_DMA_EnableStream(DMA1, LL_DMA_STREAM_1); 至于,空闲中断是另外回事。开启了空闲中断,UART接收发生空闲时自然会进入中断。
所在话题
参与活动
-
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
线下 2020-10-16 -
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
网络 2020-10-16 -
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
网络 2020-10-16 -
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
网络 2020-10-16 -
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
线下 2020-10-16 -
滴滴押注社区团购,明确“投入不设上限,要做市场第一”
线下 2020-10-16