__HAL_UART_ENABLE_IT(myuart->huart,UART_IT_TC);
此时开启了传输完成的中断,也就是你先printf一个字符串然后该中断回调
void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance == USART1)
{
printf("###");
}
}
看到效果:
main###技巧4--3--3
也就是和接受一样的,中断一次以后没有再来,需要你自己在回调里面再次设置IT构成循环。
这个中断的意义是:发送完毕以后就来中断
貌似是硬件把中断flag清了
我们换一个思路,我要串口发送寄存器为空的时候就来一个中断!
#define UART_IT_TXE
全局看到(就是看看 你就懂了)