当前位置: 首页 > article >正文

STM32之USART

概述

串口通信,通用异步收发传输器(Universal Asynchronous Receiver/Transmitter ),简称UART;而USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步收发传输器。

USART主要用于产生相关接口的协议信号,如RS-232,RS485等;

一、RS-232

RS-232:它是由美国电子工业协会(Electonic Industry Association)制定的串行通信的物理接口标准,它被广泛应用于计算机串行接口外设的连接;它规定了连接电缆和机械、电气特性、信号功能及发送过程。

在老式的台式计算机上会有一两个采用RS-232标准的接口,俗称为COM口,COM口一般采用DB-9(9针)的形式。

RS-232的物理接口

其中接线口以针式引出信号线的称为公头,以孔式引出信号线的称为母头。

各个引脚的定义:

对于这9个引脚,实际上并没有用到那么多,一般情况只需要RXD、TXD、GND三根线即可。

野火stm32f407开发板上UART使用的电平标志是TTL电平标志,图1是TTL与RS-232的差别:

                         图1

RS-232的电平标准能有有效减少信号的衰减,相比于UART,能更远的传输数据。因此,PC的com端口与stm32开发板连接时,需要使用MAX3232芯片实现RS-232电平与TTL电平之间的转换才能进行相互通信。

二、异步串口通信协议

在串口通信中,规定了异步串口通信协议:异步串行通信的数据帧由起始位、数据位、校验位、停止位4个部分组成。


起始位:平时收发引脚的电平都为高电平,串口要发送数据时,发送的数据帧以逻辑0为传输数据的开始,
数据位:数据长度为8/9位数据位,采用由最低有效位到最高有效位一位一位地传输。
校验位:用于检验数据是否有效,提高数据传输的准确率,该位为可选项,若校验位为“0”,表示不对数据进行校验;若校验位为“1”,表示对数据进行奇校验或偶校验。
停止位:一帧数据传送完毕的标志,一般固定为高电平,位数1至2位数据位。

三、UART内部结构(了解即可)

SW_RX:智能卡通信接口

IrDA:红外线数据协会

这些引脚暂时不用,发送数据寄存器(TDR)与接收数据寄存器(RDR)共用同一个地址;

发送移位寄存器的作用:把数据一位一位地发送出去。

比如某一时刻给TDR写入0x55,那么在寄存器中就是以0101 0101存储,系统就会检查当前发送移位寄存器是否有数据在移位,如果没有,就会把0x55全部发送到发送移位寄存器中,准备发送,在此工程中,会置一个标志位TXE(TX Empty:发送寄存器为空)。如果TXE置1,就可以继续在TDR写下一个数据。

发送移位寄存器就会在下面的发生器控制的驱动下,向右一位一位地把数据输出到TX引脚,也就是低位先行。

有了TDR和发送数据移位寄存器的双重缓存下,能保证发送数据期间,数据桢之间没有空闲。

而在接收端,在接收器控制的驱动下,接收移位寄存器一位一位地读取电平,向放在最高位,然后往右移,当移位寄存器里的数据全部移位完成,就会全部转移到接收数据寄存器(RXD)中,在数据转移的工程中,系统也会置一个标志位RXNE(接收数据寄存器不为空),当RXNE置1时,接收移位寄存器就可以直接移位接收下一位数据。

硬件数据流控制:如果发送设备发送数据太快,接收设备来不及处理,就会出现数据丢弃和覆盖的现象。nRTS: Request To Send,输出引脚"n"表示低电平有效;nCTS:Clear To Send清除发送,输入引脚。在实际工程中,接受设备的nRTS与发送设备的nCTS连接,当发送设备中的nCTS引脚接收到接收设备nRTS的低电平信号时,发送设备的TX发送数据。


http://www.kler.cn/a/230067.html

相关文章:

  • VS的安装和配置
  • 【不定长滑动窗口】【灵神题单】【刷题笔记】
  • RTR Chaptor10 上
  • Oracle-表分区(范围分区、列分区、Hash分区、嵌套分区、自动扩展分区)
  • 数据结构 (6)栈的应用举例
  • 探秘嵌入式位运算:基础与高级技巧
  • 敏捷开发的INVEST原则
  • Python 中的 os 模块常见方法
  • Leetcode 518 零钱兑换 II
  • GPTs保姆级教程之实践
  • 一周学会Django5 Python Web开发-Django5介绍及安装
  • npm 上传一个自己的应用(3) 在项目中导入及使用自己上传到NPM的工具
  • 【Vitis】HLS高层次综合的优势
  • 【Linux系统化学习】进程替换
  • 阿里云OSS对象存储
  • 大型装备制造企业案例分享——通过CRM系统管理全球业务
  • Ubuntu下anaconda的常用操作
  • JAVA中的抽象类
  • Oracle systemstate、gdb、dbx介绍
  • docker 部署springboot项目详细步骤
  • jquery写表格,通过后端传值,并合并单元格
  • deepin20.9安装及配置
  • 代驾应用系统(ssm)
  • P9240 [蓝桥杯 2023 省 B] 冶炼金属--2024蓝桥杯冲刺省一
  • 【Kubernetes】在k8s1.24及以上版本基于containerd容器运行时测试pod从harbor拉取镜像
  • MySQL数据引擎、建库及账号管理