一、串口基础
串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节。
UART: 通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称 作 UART。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信 号转成串行输出信号的芯片,UART 通常被集成于其他通讯接口的连结上。
USART:(Universal Synchronous/Asynchronous Receiver/Transmitter) 通用同步/异步串 行接收/发送器,USART 是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵 活的串行通信设备。
串口收发数据 阻塞、中断、DMA三种方法简单使用。
HAL_UART_Transmit();//串口发送数据 HAL_UART_Receive();//串口接收数据 HAL_UART_Transmit_IT();//串口中断模式发送 HAL_UART_Receive_IT();//串口中断模式接收 HAL_UART_Transmit_DMA();//串口DMA模式发送 HAL_UART_Receive_DMA();//串口DMA模式接收
二、STM32CubeMX配置
1.配置外部时钟源
2.串口配置
Mode :
Asynchronous : 异步, 整个过程,不会阻碍发送者的工作。
Synchronous : 同步, 同步信息一旦发送,发送者必须等到应答,才能继续后续的行为。
Single Wire : 单总线, 半双工。
Baud Rate: 波特率, 波特率表示每秒钟传送的码元符号的个数,是衡量数据传送速率的指标,它用单位时间内载波调制状态改变的次数来表示。
打开中断global interrupt
DMA都选择nomal,数据 字节(byte)
3.生成代码
三、阻塞收发数据
1.Use MicroLIB 选中
2.定义全局变量
/* USER CODE BEGIN 0 */ uint8_t a[5]; /* USER CODE END 0 */
while (1) { HAL_UART_Receive(&huart1,a,5,0xFFFF); HAL_UART_Transmit(&huart1,a,5,0xFFFF); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ }
4.编译完成下载