串口轮询方式发送函数HAL_UART_Transmit_IT()的具体执行过程及函数调用情况
时间: 2023-12-01 14:17:34 浏览: 80
stm32-cubeMX-HAL函数库实现USART通讯
串口轮询方式发送函数HAL_UART_Transmit_IT()的具体执行过程如下:
1. 在调用HAL_UART_Transmit_IT()函数时,将要发送的数据存储在指定的缓冲区中,并指定要发送的数据长度。
2. 函数将发送过程交给中断处理程序来完成,因此在函数中启用UART的TXE(发送数据寄存器空)中断,并将数据缓冲区指针和发送长度存储在全局变量中。
3. 函数返回,控制权返回到主程序中。
4. 当UART发送寄存器为空时,将触发TXE中断,中断处理程序将从全局变量中读取待发送的数据和发送长度,并将数据逐个发送到UART发送寄存器中,直到所有数据都已发送完毕。
5. 当所有数据都已发送完毕时,中断处理程序将禁用TXE中断,并触发TC(传输完成)中断,告知主程序发送已完成。
6. 在主程序中,可以等待TC中断触发来确认发送是否已完成,并执行后续操作。
函数调用情况如下:
1. 主程序调用HAL_UART_Transmit_IT()函数。
2. 函数启用TXE中断,并将数据缓冲区指针和发送长度存储在全局变量中。
3. 函数返回,控制权返回到主程序中。
4. 当UART发送寄存器为空时,将触发TXE中断,中断处理程序将从全局变量中读取待发送的数据和发送长度,并将数据逐个发送到UART发送寄存器中,直到所有数据都已发送完毕。
5. 当所有数据都已发送完毕时,中断处理程序将禁用TXE中断,并触发TC中断,告知主程序发送已完成。
6. 主程序可以等待TC中断触发来确认发送是否已完成,并执行后续操作。
阅读全文