STM32
直播中

Arvinhw

10年用户 1011经验值
擅长:嵌入式技术
私信 关注
[问答]

STM32串口通信基本原理是什么?

STM32串口通信基本原理是什么?

回帖(1)

张亮

2021-11-17 11:23:52
参考正点原子视频
  通信方式

  并行通信
  


  • 传输原理:数据各个位同时传输
  • 优点:速度快(一个引脚传输一个位)
  • 缺点:占用引脚资源多

  串行通信
  


  • 传输原理:数据按位顺序传输
  • 优点:占用引脚资源少(一个引脚都可以)
  • 缺点:速度相对较慢

  串行通信

  按照数据传送方向,分为
  


  • 单工:数据传输只支持数据在一个方向上传输
  • 半双工:允许数据在两个方向上传输,但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信
  • 全双工:允许数据同时在两个方向上传输,因此,全双工通信是两个单工通信方式的结合,它要求发送设备和接收设备都有独立的接收和发送能力

  串口通信三种传送方式

  
  

  

  串行通信的通信方式

  


  • 同步通信:带时钟同步信号传输。 -SPI,IIC通信接口
  • 异步通信:不带时钟同步信号。 -UART(通用异步收发器),单总线

  在同步通信中,收发设备上方会使用一根信号线传输信号,在时钟信号的驱动下双方进行协调,同步数据。例如,通讯中通常双方会统一规定在时钟信号的上升沿或者下降沿对数据线进行采样。
  在异步通信中不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些用于同步的信号位,或者将主题数据进行打包,以数据帧的格式传输数据。通讯中还需要双方规约好数据的传输速率(也就是波特率)等,以便更好地同步。常用的波特率有4800bps、9600bps、115200bps等。
  在同步通讯中,数据信号所传输的内容绝大部分是有效数据,而异步通讯中会则会包含数据帧的各种标识符,所以同步通讯效率高,但是同步通讯双方的时钟允许误差小,稍稍时钟出错就可能导致数据错乱,异步通讯双方的时钟允许误差较大。
  常见的串行通信接口

  
  

  

  STM32的串口通信接口

  


  • UART:通用异步收发器
  • USART:通用同步异步收发器

  UART异步通信方式引脚连接方式

  


  • RXD:数据输入引脚。数据接收
  • TXD:数据发送引脚。数据发送

  
  

  


  

  

  UART异步通信方式特点

  


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

  串口通信过程

  
  

  

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

  

  • 起始位
  • 数据位(8位或者9位)
  • 奇偶校验位(第9位)
  • 停止位(4,15,2位)
  • 波特率设置

  
  

  

  USART框图

  
  

  

  常用的串口相关寄存器

  


  • USART_SR状态寄存器
  • USART_DR数据寄存器
  • USART_BRR波特率寄存器

  波特率计算方法

  
  

  

  
举报

更多回帖

发帖
×
20
完善资料,
赚取积分