/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_USART1_UART_Init();
MX_USART2_UART_Init();
/* USER CODE BEGIN 2 */
ExcomInit();
void ExcomInit(void)
{
excom.uart = &huart2;
excom.rxdma = &hdma_usart2_rx;
__HAL_UART_ENABLE_IT(excom.uart,UART_IT_IDLE);
HAL_UART_Receive_DMA(excom.uart,excom.RxRam[excom.DMARxNo].DMARxbuff,DMARXBUFFSIZE);
}
需要在Bootloader中停止DMA传输流后才能在APP中正常使用,否则APP中不能正常启动DMA串口接收。
__disable_irq();
HAL_DMA_Abort(&hdma_usart1_rx);
HAL_DMA_Abort(&hdma_usart2_rx);