【江科大】STM32:USART串口(理论部分)上

串口

在这里插入图片描述
在这里插入图片描述
全双工:可以进行同步通信
单端信号:信号线传输的就是单端信号。(也就是与地线(GND)的电势差)
缺点:防干扰能力差
原因:当信号从A点传输到B点,理想条件是A,B两点的电势差差不多,但是干扰信号会让A,B两点的电势差。导致信号发生变化。电路的性能变差。

串口通信

  • 串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通
    信线路简单,可实现两个设备的互相通信。
  • 单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各
    式各样的模块互相通信,极大地扩展了单片机的应用范围,增强了
    单片机系统的硬件实力。
    在这里插入图片描述

1. 硬件电路

  • 简单双向串口通信有两根通信线(发送端TX和接收端RX)
  • TX与RX要交叉连接
  • 当只需单向的数据传输时,可以只接一根通信线
  • 当电平标准不一致时,需要加电平转换芯片
  • 线路中使用TTL电平
    -在这里插入图片描述

2. 电平标准

电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电
压与数据的对应关系,串口常用的电平标准有如下三种:
TTL电平:+3.3V或+5V表示1,0V表示0
RS232电平:-3 ~ -15V表示1,+3 ~ +15V表示0(使用大电器)
RS485电平:两线压差+2 ~ +6V表示1,-2 ~ -6V表示0(差分信号:
抗干扰能力强,可传输上千米)

3.串口参数以及时序

波特率:串口通信的速率双方必须约定好传输速率,接收和发送速率
比特率:每秒传输的比特数,二进制调制1高,0低比特率=波特率
起始位:标志一个数据帧的开始,固定为低电平
数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行00001111
校验位:用于数据验证,根据数据位计算得来
停止位:用于数据帧间隔,固定为高电平,为下一个开始做准备
在这里插入图片描述

4.串口时序

在这里插入图片描述
在这里插入图片描述

串口外设简介

  • USART (Universal Synchronous/Asynchronous Receiver/Transmitter)
    通用同步/异步收发器。
  • USART:是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里。
  • 自带波特率发生器,最高达4.5 bits/s(其实就是分频器,得到想要想要波特率)(9600)
  • 可配置数据位长度(8/9)、停止位长度(0.5/1/1.5/2):决定帧的间隔。
  • 可选校验位(无校验/奇校验/偶校验
  • 支持同步模式、硬件流控制:控制当V发送>V接收,导致数据覆盖
    防止数据丢失(准备好高电平,没有置为低电平)、DMA、智能卡、IrDA(红外接收管)、LN
    在这里插入图片描述

外设框图

在这里插入图片描述

在这里插入图片描述

USART的基本结构

在这里插入图片描述

数据帧

在这里插入图片描述
在这里插入图片描述

起始位侦测

在这里插入图片描述

数据采样

在这里插入图片描述

波特率发生器

发送器和接收器的波特率由波特率寄存器BRR里的DIV确定

在这里插入图片描述

CH340原理图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/346900.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity 解决异步分发方案

很多程序,包括游戏、小程序、一些AR、VR的程序,因为客户端体量太大,更新频繁都涉及到远程热更新的问题,解决这类问题的思路基本上是客户端解决主要功能,资源类放置在服务器。 下面记录下: 1.CDN或者云轻量…

探讨Go语言中的HTTP代理模式:看Go如何玩转网络中转站

在互联网的海洋中,HTTP代理服务器像一座灯塔,为我们的网络冲浪提供了指引。而当Go语言遇上HTTP代理,会碰撞出怎样的火花呢?今天,让我们一起探讨Go语言中的HTTP代理模式,看看它如何玩转这个网络中转站&#…

BGV/BFV 的统一自举算法

参考文献: [GV23] Geelen R, Vercauteren F. Bootstrapping for BGV and BFV Revisited[J]. Journal of Cryptology, 2023, 36(2): 12.Bit Extraction and Bootstrapping for BGV/BFV 文章目录 Bootstrapping for BGV and BFVDecryption FunctionBGVBFV Bootstrapp…

项目管理中,项目经理如何预防需求蔓延?

在项目管理中,需求蔓延是一个常见的问题,需求蔓延可能会导致项目进度延误、成本增加和产品质量下降。为了防止这种情况发生,项目经理需要采取一系列措施来预防需求蔓延。 一、明确项目范围和需求 项目经理需要在项目开始阶段明确项目范围和…

【云原生】Docker 网络

目录 Docker 网络实现原理 查看容器的输出和日志信息 Docker 的网络模式: 使用docker run创建Docker容器时,可以用 --net 或 --network 选项指定容器的网络模式 网络模式详解 1.host模式 2.container模式 --name 选项可以…

【开源】基于JAVA+Vue+SpringBoot的婚恋交友网站

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 会员管理模块2.3 新闻管理模块2.4 相亲大会管理模块2.5 留言管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 会员信息表3.2.2 新闻表3.2.3 相亲大会表3.2.4 留言表 四、系统展示五、核心代码5.…

数据结构之二叉树的遍历

数据结构是程序设计的重要基础,它所讨论的内容和技术对从事软件项目的开发有重要作用。学习数据结构要达到的目标是学会从问题出发,分析和研究计算机加工的数据的特性,以便为应用所涉及的数据选择适当的逻辑结构、存储结构及其相应的操作方法…

STM32F407移植OpenHarmony笔记1

参考文档: OpenAtom OpenHarmonywidthdevice-width,initial-scale1.0https://docs.openharmony.cn/pages/v3.2/zh-cn/device-dev/get-code/gettools-acquire.md/ 搭建环境 安装linux系统: Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-91-generic x86_64) 下载源代码&a…

【服务器GPT+MJ+GPTs】创建部署GPT+MJ+GPTs程序网站

目录 🌺【前言】 🌺【准备】 🌺【宝塔搭建GPT+MJ+GPTs】 🌼1. 给服务器添加端口 🌼2. 安装宝塔 🌼3. 安装Docker 🌼4. 安装ChatGPT程序 🌼5. 程序更新 🌼6. 修改端口 | 密码 🌼7. 绑定域名+申请SSL证书 🌺【前言】 相信大家都对openai的产品ch…

【洛谷】P1443 马的遍历(BFS)

由于在 x,y 表示 x 行 y 列还是 y 行 x 列上存在歧义,另外提供一组测试数据: // input: 5 5 2 3// output: 1 2 3 2 1 2 3 0 3 2 1 2 3 2 1 4 1 2 1 4 3 2 3 2 3 可以说&…

Qt基础-窗体添加图标

本文演示Qt窗体如何添加图标 创建项目添加资源文件 打开窗体的设计窗口 选择windowIcon属性,点击下箭头-选择资源,选择资源文件,(格式不受限制) 点击OK即可 运行看效果

【小呆的力学笔记】弹塑性力学的初步认知二:应力应变分析(2)

文章目录 1.4 主应力空间、八面体应力1.5 应变分析1.6 特殊应力、应变定义 1.4 主应力空间、八面体应力 一点的应力状态不论如何变化,其主应力和主方向一致的话,该点的应力状态就是唯一确定的。因此,我们用主应力方向建立一个三维坐标系来描…

【Linux】基础命令及测试工作常用

一、Linux基础命令 【基础】 tab补全 chtrlc停止进程 绝对路径: 以 / 开头,从根目录下开始寻找路径 相对路径: 不以 / 开头,从当前目录下开始寻找 1、系统管理相关命令 ifconfig 显示或设置网络设备的命令,我们可…

[实战]加密传输数据解密

前言 下面将分享一些实际的渗透测试经验,帮助你应对在测试中遇到的数据包内容加密的情况。我们将以实战为主,技巧为辅,进入逆向的大门。 技巧 开局先讲一下技巧,掌握好了技巧,方便逆向的时候可以更加快速的找到关键函数…

mybatisplus做SQL拦截添加自定义排序

前言 工作中写的一段代码,备个份,以后兴许能直接用 功能描述:如果前端传入了排序规则,则优先按传入的字段进行排序,SQL原有的排序规则追加到末尾 注:我们项目里的分页查询,是基于XML的SQL执行的…

RedisInsight详细安装教程

简介 RedisInsight 是一个直观高效的 Redis GUI 管理工具,它可以对 Redis 的内存、连接数、命中率以及正常运行时间进行监控,并且可以在界面上使用 CLI 和连接的 Redis 进行交互(RedisInsight 内置对 Redis 模块支持)。 RedisIn…

第四篇【传奇开心果短博文系列】Python的OpenCV库技术点案例示例:机器学习

传奇开心短博文系列 系列短博文目录Python的OpenCV库技术点案例示例系列短博文 短博文目录一、项目目标二、OpenCV机器学习介绍三、OpenCV支持向量机示例代码四、OpenCV支持向量机示例代码扩展五、OpenCVK均值聚类示例代码六、OpenCVK均值聚类示例代码扩展七、OpenCV决策树示例…

调优 mybatis saveBatch 25倍性能

调优 mybatis saveBatch 25倍性能 最近在压测一批接口,发现接口处理速度慢的有点超出预期,感觉很奇怪,后面定位发现是数据库批量保存这块很慢。 这个项目用的是 mybatis-plus,批量保存直接用的是 mybatis-plus 提供的 saveBatch…

Geogebra绘制正态分布曲线-学习b站何威老师视频

​ 参考资料 GeoGebra系列教程3——GGB与正态分布密度曲线_哔哩哔哩_bilibili 我要开始学习啦,吼吼~~~ 准备工作 https://www.geogebra.org/download 选择GeoGebra 经典 6 详细步骤 设计思路具体操作设计积分区间【a,b】创建滑动条a∈[-5,5],增量是…

P4学习(七)实验四:Explicit Congestion Notification

目录 一. 实验目的二.前置知识略概三. 实验过程1. Topo2. Egress 三. 实验结果1.启动监听服务端2.发送数据包3.查看h2.log的数据4.Iperf模拟Flood超过门限 四.为什么要在Egress上进行ecn的配置 一. 实验目的 ECN allows end-to-end notification of network congestion without…