STM32学习笔记——UART
串口收发函数
HAL_UART_Transmit();串口轮询模式发送,一直询问
HAL_UART_Receive();串口轮询模式接收,一直询问
HAL_UART_Transmit_IT();串口中断模式发送
HAL_UART_Receive_IT();串口中断模式接收
HAL_UART_Transmit_DMA();串口DMA模式发送
HAL_UART_Transmit_DMA();串口DMA模式接收
串口中断服务程序
HAL_UART_TxHalfCpltCallback();一半数据发送完成时调用
HAL_UART_TxCpltCallback();数据完全发送完成后调用
HAL_UART_RxHalfCpltCallback();一般数据接收完成时调用
HAL_UART_RxCpltCallback();数据完全接受完成后调用
HAL_UART_ErrorCallback();传输出现错误时调用
轮询模式
HAL_UART_Transmit();串口轮询模式发送,使用超时管理机制,阻塞调用
HAL_UART_Receive();串口轮询模式接收,使用超时管理机制,阻塞调用
- 使能时钟
- 配置时钟源
- 使能串口
- 发送函数
中断模式
- 开启中断
- 编写代码
使能接收中断函数
编写中断服务程序
定义变量
main中实现
如上写法会存在丢包的现象
一下发送过去19个字节只接收到了10个,其中9个就丢失了
DMA模式
- 开启DMA模式
- 编写代码
初始化mda接收中断
dma中断服务程序