当所有的数据都发送完成之后,UART_Transmit_IT(huart);不会再次写入dr寄存器,程序进入UART_EndTransmit_IT(huart);函数,触发HAL_UART_TxCpltCallback(huart);中断。 修改思路 接下来的问题就简单了,我们只需要在安富莱的发送开始函数改成HAL_UART_Transmit_IT()即可,然后在发送中断里面写fifo的发送即可。