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

STM32开发(USART总线:UART总线)

一、USART总线

1、总线的概念

总线就是实际存在于物理层(硬件层)并用于设备间通信的桥梁

2、设备间的通信方式

1)串行通信和并行通信

串行通信指的是通信双方收发数据时,通过一根信号线,或一对差分线,按顺序逐位传输数据的通信方式
并行通信指的是通信双方收发数据时,通过多根信号线,同时按顺序逐个发送多位数据的通信方式

2)同步通信和异步通信

同步通信:指的是通信双方使用同一时钟源(通信双方使用的时钟频率一致)
异步通信:指的是通信双方使用不同时钟源(通信双方使用的时钟频率不一致)频率:单位时间内含有完整周期的电平信号
周期:一个完整波形的时间宽度

3)单工、半双工、全双工

单工通信:指的是通信设备要么只能发送数据,要么只能接收数据
半双工通信:指的是通信设备既可以发送数据,也可以接收数据,但是同一时刻只能接收或者发送数据
全双工通信:指的是通信设备既可以发送数据,也可以接收数据,并且同一时刻既可以发送数据,也可以接收数据

4)总线的分类

三大基础串行总线(串行接口):1. UART总线的特性:串行、异步、全双工通信总线2. IIC总线的特性:串行、同步、半双工通信总线3. SPI总线的特性:串行、同步、全双工通信总线

二、TTL硬件协议

        TTL协议是指物理层面,通过不同电压范围明确区分高电平和低电平,避免信号模糊的方式,不论是UART、IIC、IPS,哪个协议,只要是在逐个电压范围内,都是TTL协议

在TTL协议中:2.0V ~ 5.0V 之间的电压值表示高电平0.0V ~ 0.8V 之间的电压值表示低电平0.8V ~ 2.0V 之间的电压值是无效信号

三、UART通信总线

1、相关概念

1. UART总线是一种串行、异步、全双工通信的总线,实际存在于物理层(硬件层)
2. UART总线的硬件连接:具备3根线,分别为TXD(数据发送线)、RXD(数据接收线)、GND(地线)
3. UART总线的应用场景:一般用于设备间的通信(PC和开发板进行通信)
4. UART总线在实际操作时,被称之为串口

2、硬件连接

3、DB25/DB9的公母头插件

        DB9插件由DB25插件优化而来,主要的协议核心就是TX、RX 和 GND就是串口协议

4、电平转换

开发板使用的是TTL电平:0~0.8v(代表低电平信号,逻辑上的0),2v~5v(代表为高电平信号,逻辑上的1)
电脑上使用的是USB电平:-2v~-6v(代表低电平信号,逻辑上的0),2v~6v(代表为高电平信号,逻辑上的1)
电平转换芯片CH340:USB电平 <--------> TTL电平

5、UART的工业层协议

UART总线使用的是TTL协议进行数据传输,但是TTL电平容易受到电磁干扰,
导致TTL电平的UART总线的通信距离有限,因此对UART协议进行了优化,增强抗干扰能力和通讯距离
RS232总线和RS485总线就是由UART总线优化而来,所以RS232和RS485协议的协议格式和UART协议一致RS232总线:电平范围: -3.0V ~ -15V(逻辑上的1) , 3.0V ~ 15V(逻辑上的0) (负逻辑电平)使用RS232总线进行数据传输时,需要使用MAX232电平转换芯片RS232总线和UART总线特性一致,都是串行、异步、全双工通讯RS232总线的通讯距离在10m左右RS485总线:电平范围: 1.5V/2.0V ~ 6.0V使用RS485总线进行传输数据时,需要使用MAX485电平转换芯片RS485总线是串行、异步、半双工通信(是一对差分线)RS485总线的通讯距离在1000m左右

6、差分信号线

        差分信号线是一种抗干扰能力极强的信号传输方式,其核心逻辑是通过两根信号线传输"互补信号",接收端通过计算两根信号线的电压差来还原原始信号,从而最大程度的抵消外部干扰。

        这种工作机制可以概括为 "一送一补,取差还原"

7、UART通讯协议的协议格式

起始位:当UART总线数据产生下降沿信号时,标志通讯开始

终止位:当UART总线数据产生上升沿信号时,标志通讯结束

起始位恒定为 1 位,终止位可以是 1 位,1.5 位,2 位

数据位:实际需要发送接收的数据位(起始位和终止位之间都是数据位)

奇偶校验位:用于奇偶校验,包含在数据位中,可以使用奇偶校验位也可以不使用奇偶校验位

8、波特率

波特率的解释:单位时间内,可以传输数据的位数
波特率的单位:bps(bit per second)每秒传输多少位的数据设置波特率的作用:1、UART总线是异步通信的总线,通信双方没有使用同一时钟源,时钟频率不一致如果再基于时钟频率控制数据收发的速率,一定会出现数据截断/乱码之类的错误如想修改电脑中的UART的时钟频率暂时做不到,所以更改通信双方的时钟频率为一致的方法走不通2、通过使用UART总线通信的双方,确定使用同一个通信速率 ----> 波特率即使是异步通信,只要确定通信双方的通信速率(波特率)为一样的,就可以实现同步的效果常见的波特率:4800 9600 115200
总结:使用UART总线进行数据传输时,通信双方必须要保持协议格式和波特率都是一致的常用的串口协议格式:8N1协议格式 + 9600/115200

四、配置复用串口模式

1、配置RCC相关外设控制器

2、配置GPIO相关外设控制器

1)GPIO_MODER寄存器

2)GPIO_AFRL/H寄存器



        下图可以在stm32u575rit6.pdf产品手册4.3章节查找到复用功能查询表

3、USART/UART相关外设控制器

1)USART配置分析

        了解配置USART需要配置哪些参数


2)USART的布局图

        了解串口内部的执行逻辑

3)


文章转载自:

http://RM14gEBy.njhyk.cn
http://eQpn0PV5.njhyk.cn
http://u9KGpUQ8.njhyk.cn
http://0B9F0KdB.njhyk.cn
http://yfkYYgKJ.njhyk.cn
http://8r8xS3Bj.njhyk.cn
http://GkOXCsfU.njhyk.cn
http://4jcuOL34.njhyk.cn
http://J3o3FoxQ.njhyk.cn
http://kryVXwB5.njhyk.cn
http://k5AHEndQ.njhyk.cn
http://bEpjn4wX.njhyk.cn
http://kh220bt7.njhyk.cn
http://MQjwkevp.njhyk.cn
http://vmAriOwA.njhyk.cn
http://C7ifMnVG.njhyk.cn
http://DlZla8q8.njhyk.cn
http://czSdI9wI.njhyk.cn
http://LyBtKi9E.njhyk.cn
http://0LvWEDYE.njhyk.cn
http://vdqVomX4.njhyk.cn
http://60gSwb3I.njhyk.cn
http://GF0rxmaN.njhyk.cn
http://TjkMxLIU.njhyk.cn
http://NPb2TP8U.njhyk.cn
http://1Qjn2yJ4.njhyk.cn
http://JJllYOUE.njhyk.cn
http://QU0b3DeZ.njhyk.cn
http://xHwvcpLn.njhyk.cn
http://Gk9W3EcF.njhyk.cn
http://www.dtcms.com/a/376032.html

相关文章:

  • Typescript - 通俗易懂的 interface 接口,创建接口 / 基础使用 / 可选属性 / 只读属性 / 任意属性(详细教程)
  • FastGPT源码解析 Agent 智能体应用创建流程和代码分析
  • [网络入侵AI检测] 模型性能评估与报告
  • chmod与chown命令的深度解析
  • 7层的API网关
  • 链表问题:LeetCode 两数相加 - 算法解析与详解
  • 类型别名(type)与接口(interface)的抉择
  • 4.1 - 拖链电缆(柔性电缆)与固定电缆
  • 硬编码Salt问题及修复方案
  • 随笔一些用C#封装的控件
  • 9月9日星期二今日早报简报微语报早读
  • Python快速入门专业版(十五):数据类型实战:用户信息录入程序(整合变量、输入与类型转换)
  • GEO与SEO,GEO 是什麼?SEO + AI = GEO 生成式搜尋引擎優化 全解析
  • Asp .Net Core 系列:Asp .Net Core 集成 Hangfire+MySQL
  • 如果服务端有数据更新,浏览器缓存同时也没有过期,如何直接使用最新的数据
  • 使用java编写一个基础的彩票抽奖程序
  • 算法题 Day5---String类
  • 【靶场练习】--DVWA第二关Command Injection(命令执行)全难度分析
  • 什么是Adobe Analytics?数据驱动营销的关键工具​
  • 使用Docker搭建MaxKB智能体平台
  • 【链表】3.重排链表(medium)
  • 免费!离线!免安装!Windows文件夹隐藏工具
  • 联邦学习及其相关创新SCI辅导
  • 466章:Python Web爬虫入门:使用Requests和BeautifulSoup
  • ES8集群部署与使用-zookeeper集群部署与使用
  • Nginx 优化与防盗链配置指南
  • 【数据结构】栈详解
  • 力扣周赛困难-3677. 统计二进制回文数字的数目(需要一定推理的经典二分)
  • 【硬件-笔试面试题-77】硬件/电子工程师,笔试面试题(知识点:滤波电路中截止频率的计算)
  • CUDA编程13 - 测量每个Block的执行时间