串口USART-通用同步/异步收发器
串口是什么串行通信接口串行通信数据一位一位地传并行通信数据通过多条线同时传输USART 通用同步异步收发器两根线TX发送 Transmit RX接收Receive全双工异步通信全双工通信发送和接收可以同时进行单工通信数据只能沿一个方向传输半双工通信数据可以沿两个方向传输但需要分时进行异步通信没有时钟信号通过在数据信号中加入起始位和停止位等一些同步信号同步通信双方共用同一个时钟信号常用于调试打印和蓝牙/GPS/WiFi模块通信通信参数波特率每秒传多少位数据数据帧格式[空闲-高电平]-[起始位-1位]-[数据位-8位]-[停止位-1位]-[空闲-高]起始位拉低开始传数据位8位真正的数据先传低位停止位拉高传完了USART vs UARTUSART 通用同步异步收发器多了同步能力S带SCLK时钟线UART 通用异步收发器只有异步STM32的USARTx平时当UART用异步同步模式像SPI较少用STM32 USART引脚USART1挂载在APB2上72MHz最常用USART2挂载在APB1上36MHzUSART3挂载在APB1上36MHz配置步骤开时钟GPIOUSARTGPIO初始化:TX为复用推挽输出RX用上拉输入配置USART波特率数据位停止位校验收发模式硬件控流使能USARTUSART_Cmd发送接收数据可选中断接收USART_ITConfig开启RXNE中断 配置NVIC串口数据包为什么要有数据包单字节发送无法区分一个完整的数据数据包给数据加包头包尾接收方按帧解析固定帧江协例程格式FF包头 4字节数据 FF包尾包头0xFF标记一帧开始包尾0xFF标记结束FE风格接收状态机RxState 0→1→2逐字节判断包头→存数据→认包尾可变帧格式 数据 \r\n标记开始\r\n标记结束适合文本命令如1234\r\n固定帧 vs 可变帧固定帧可变帧包头包尾0xFF / 0xFE / \r\n适合二进制数据传感器值文本命令长度固定可变