第二步:在需要发送数据时调用HAL_UART_Transmit_IT()函数启动发送数据。 HAL_UART_Transmit_IT(&huart2, (uint8_t *)TxBuffer1, TXBUFFERSIZE1 - 1);
第三步:串口自动启动发送中断,当每次中断时,自动进入中断USART2_IRQHandler()函数,调用库中的HAL_UART_IRQHandler()函数,这个函数不用大家编写,由库已经写好。void USART2_IRQHandler(void)
{
HAL_UART_IRQHandler(&huart2);
}
第四步:当串口中断发送完所有需要发送的数据时,自动调用HAL_UART_TxCpltCallback()这个串口发送完成的回调函数。在这里大家写上自己的串口发送完毕的处理事件,当然我这里将自定义的标志置位。void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
{
UartReady = SET;
}
第五步:在主函数中,启动发送数据HAL_UART_Transmit_IT()函数后,要判断数据是否发送完成,即UartReady标志,当发现置1即知道数据发送完毕,之后清标志位,就可以进行下一次发送了。 while (UartReady != SET)
{
;
}
UartReady = RESET;
|