UART&USART通信原理

一,一般通信的两种方式

1,并行通信: 数据各个位同时传输,速度快,占用引脚资源多。(例如:传输8bit数据,需要8个引脚,8个位一起传输)

2,串行通信:数据按位顺序传输。速度相对较慢,占用引脚资源少 (例如:传输8bit数据,需要至少1个引脚,一位一位地传输)。

● 按照数据传送方向,串行通信分为:

单工: 数据传输只支持数据在一个方向上传输

半双工:允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;

全双工:允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力。

串行通信三种传送方式:如下图所示:

● 串行通信的通信方式

同步通信带时钟同步信号传输。-SPIIIC通信接口。

异步通信:不带时钟同步信号。UART(通用异步收发器),单总线。

● 常见的串行通信接口

通信标准

引脚说明

通信方式

通信方向

  UART

(通用异步收发器)

TXD:发送端

RXD:接受端

GND:公共地

异步通信

全双工

  单总线

(1-wire)

DQ:发送/接受端

异步通信

半双工

SPI

SCK:同步时钟

MISO:主机输入,从机输出

MOSI:主机输出,从机输入

同步通信

全双工

I2C

SCL:同步时钟

SDA:数据输入/输出端

同步通信

半双工 

二,STM32的串口通信接口

  • UART:通用异步收发器
  • USART:通用同步异步收发器
  • 大容量STM32F10x系列芯片,包含3USART2UART

 

三,UART异步通信方式引脚连接方法

-RXD:数据输入引脚。数据接受。

-TXD:数据发送引脚。数据发送。

有两根线,一根TXD用于发送,一根RXD用于接收,

UART的串行数据传输不需要使用时钟信号来同步传输,而是依赖于发送设备和接收设备之间预定义的配置。对于发送设备和接收设备来说,两者的串行通信配置应该设置为完全相同。

如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。

 

 

STM32数据手册中有定义

 

四,UART异步通信方式特点:

  • 全双工异步通信。
  • 分数波特率发生器系统,提供精确的波特率。发送和接受共用的可编程波特率,最高可达4.5Mbits/s
  • 可编程的数据字长度(8位或者9位);
  • 可配置的停止位(支持1或者2位停止位);
  • 可配置的使用DMA多缓冲器通信。
  • 单独的发送器和接收器使能位。
  • 检测标志:① 接受缓冲器  ②发送缓冲器空 ③传输结束标志
  • 多个带标志的中断源。触发中断。
  • 其他:校验控制,四个错误检测标志。

 

五,串口通信过程

 

六,STM32串口异步通信需要定义的参数

  • 起始位:表示数据传输的开始,电平逻辑为“0” 。
  •  数据位(8位或者9位):可能值有5、6、7、8、9,表示传输这几个bit 位数据。一般取值为8,因为一个ASCII 字符值为8 位。
  •  奇偶校验位(第9位)--奇校验/偶校验(奇校验:前面数据位中已经有奇数个1或者0,则校验位设置为0,否则设置为1,偶校验同理)用于接收方对接收到的数据进行校验,校验“1” 的位数为偶数(偶校验) 或奇数(奇校验),以此来校验数据传送的正确性,使用时不需要此位也可以。
  •  停止位(1,15,2位)表示一帧数据的结束。电平逻辑为“1”
  •  波特率设置

示例:

七,STM32串口(UART)框图(参考STM32中文参考手册)

八,stm32常用的串口相关寄存器

  • USART_SR状态寄存器

  • USART_DR数据寄存器

  • USART_BRR波特率寄存器

 

九,波特率计算方法

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值