8.3.3 串口发送和接收函数
1.串口发送函数HAL_UART_Transmit()
串口的发送函数有轮询模式发送,通过查询发送结束标志判断数据是否发送结束;有中断模式发送,通过是否发生中断判断数据是否发送结束;有DMA模式发送,通过DMA中断判断数据是否发送结束。3种串口发送函数如表8.7所示。
表8.7 串口发送函数

例如要发送字符“STM32F”,程序如下。

2.串口接收函数HAL_UART_Receive()(https://www.daowen.com)
串口的接收函数有轮询方式接收,通过查询接收标志判断是否有数据装到缓冲区;有中断方式接收,通过是否发生中断判断是否有数据接收到缓冲区;有DMA方式接收,通过DMA中断判断是否有数据接收。3种串口接收函数如表8.8所示。
表8.8 串口接收函数

串口接收数据一般采用中断或DMA的方式,中断方式接收适合数据量较小的场合,DMA方式接收适合数据量大的场合。3种函数均是接收定长数据,若接收不定长的数据,可以采用空闲中断和DMA联合的方式实现,此种方法将在DMA章节讲述。
例如,通过串口中断每次接收一个数据,接收函数在串口回调函数中,程序如下。
