如何在DMA循环模式下使用HAL_UART_Transmit_DMA?

stm32HAL库编程,DMA被初始化成了循环模式,使用HAL_UART_Transmit_DMA来发送串口数据什么时候会调用HAL_UART_TxCpltCallback
使用串口的相关代码
void fTxstr(uint8_t n)
{
    switch(n)
    {
        case 1:HAL_UART_Transmit_DMA(&huart1,Txstr,sizeof(Txstr));
    }
}

void HAL_UART_TxCpltCallback(UART_HandleTypeDef* huart) 
{
    if(huart->Instance==USART1) LED_B_ON;//蓝灯亮
}

实验现象是蓝灯亮起,但是在debug的时候会不断进入DMA中断,然后总是调用HAL_UART_TxHalfCpltCallback//发送一半的中断
我想知道什么时候会调用HAL_UART_TxCpltCallback//发送结束的中断

有没有人解答一下呀

1、如果你不想启用DMA半完成中断,可以把半完成的回调函数=NULL,这个库函数应该就不会再自动使能半完成中断了
2、你不断的进半完成中断这个现象是你实际执行了发送了吗?还是没发数据也不断的进?(注意清除中断标志位)

img