一、简介:
UART是一种采用异步串行通信方式的通用异步收发传输器。
同步通信:带时钟同步信号的数据传输,发送方和接收方在同一时钟的控制下,同步传输数据。
异步通信:不带时钟同步信号的数据传输,发送方与接收方使用各自的时钟控制数据的发送与接收过程。
串行通信的传输方向:单工、半双工、全双工。
单位:串行通信的速率用波特率表示,即每秒传输二进制数据的位数,bps/s。9600,19200,38400,57600,115200等。
二、UART之RS232
在传输距离较短(不超过15m)时,常用RS232串行通信。RS232是负逻辑电平,-15V-5V代表逻辑“1”,+5+15代表逻辑“0”,所以需要将TTL转换为RS232电平,转换芯片有SP3232。
在空闲状态时,收发端口处于高电平,从高电平到低电平的下降沿表示起始位。
三、 UART之RS485
RS485是差分输入输出,两个信号线上传输的信号幅值相等,相位相差180度,用他们的差值来表示0和1。可以抑制共模干扰,差分传输大大提高了信号在传输过程中的抗干扰能力,但是需要多余的信号线来传输。
RS485将船速速率提高到10Mbps,当传输速率在100kbps,传输距离可达1200m,RS485只有两根信号线,由发送和接收共用,不可同时进行,只能实现半双工通信,允许多个发送器连接到同一条总线上,各设备通过使能信号控制发送和接收过程。
对于RS485,+(26)作为逻辑高电平,-(26)逻辑低电平,使用SP3485芯片实现。
四、工程实例: UART--串口1
使用串口1(PA8 和 PA9)收发消息,使用printf重定向串口输出
串口配置初始化代码:
执行串口收发:
测试结果:
WeChat_20230520162341
|