USART--串口通信

目录

一、通讯的基本知识

1、串行通讯与并行通讯

2、 全双工、半双工及单工通讯

3、 同步通讯与异步通讯

4、通讯速率

二、串口通讯

1、物理层:

2、协议层:

3、STM32代码中使用过程串口步骤:


一、通讯的基本知识

1、串行通讯与并行通讯

根据数据传送的方式,通讯可分为串行通讯并行通讯

(1) 串行通讯:是指设备之间通过少量数据信号线(一般是8 根以下),地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式;

(2) 并行通讯:并行是指多比特数据同时通过并行线进行传送,一般使用8、16、32 及64 根或更多的数据线进行传输的通讯方式;

(3) 串行通讯与并行通讯比较:

特性

串行通讯

并行通讯

通讯距离

较远

较近

抗干扰能力

较强

较弱

传输速率

较慢

较高

成本

较低

较高

       并行通讯使用多个信号线,可以同时传输多个数据位的数据;而串行通讯只有一个信号线,同一时刻只能传输一个数据位的数据。

2、 全双工、半双工及单工通讯

根据数据通讯的方向,通讯又分为全双工、半双工及单工通讯;

通讯方式

通讯线

举例

说明

全双工

两根

SPI、UART

在同一时刻,两个设备之间可以同时收发数据

半双工

一根

IIC

两个设备之间可以收发数据,但不能在同一时刻进行

单工

一根

某些传感器通讯,比如红外,温湿度传感器等

在任何时刻都只能进行一个方向的通讯,即一个固定为发送设备,另一个固定为接收设备

3、 同步通讯与异步通讯

根据通讯的数据同步方式,又分为同步和异步两种,可以根据通讯过程中是否有使用到时钟信号进行简单的区分。

(1) 同步通讯:收发设备双方会使用一根信号线表示时钟信号,在时钟信号的驱动下双方进行协调,同步数据。通讯中通常双方会统一规定在时钟信号的上升沿或下降沿对数据线进行采样。同步通讯双方的时钟允许误差较小,数据信号所传输的内容绝大部分就是有效数据,一般不用校验位,所以同步通讯的效率更高

(2) 异步通讯:不使用时钟信号进行数据同步,容易出错,所以它们在数据信号中穿插一些同步用的信号位和校验位,或者把主体数据进行打包,以数据帧的格式传输数据,某些通讯中还需要双方约定数据的传输速率,以便更好地同步。异步通讯双方的时钟允许误差较大

4、通讯速率

衡量通讯性能的一个非常重要的参数就是通讯速率,通常以比特率(Bitrate) 来表示,即每秒钟传输的二进制位数,单位为比特每秒(bit/s)。

波特率和比特率:

容易与比特率混淆的概念是波特率(Baudrate),它表示每秒钟传输了多少个码元。而码元是通讯信号调制的概念,通讯中常用时间间隔相同的符号来表示一个二进制数字,这样的信号称为码元

如常见的通讯传输中,用0V 表示数字0,5V 表示数字1,那么一个码元可以表示两种状态0 和1,所以一个码元等于一个二进制比特位,此时波特率的大小与比特率一致;如果在通讯传输中,有0V、2V、4V 以及6V 分别表示二进制数00、01、10、11,那么每个码元可以表示四种状态,即两个二进制比特位,所以码元数是二进制比特位数的一半,这个时候的波特率为比特率的一半。

二、串口通讯

1、物理层:

串口通讯的物理层有很多标准及变种,根据通讯使用的电平标准不同,主要有TTL,RS-232,RS-485

通讯标准

电平标准(发送端)

传输距离

通讯方式

5V TTL

逻辑1:2.4V - 5V 、 逻辑0:0 ~ 0.5V

在9600波特率传输距离为2米,一般不超过15米

全双工

RS-232

逻辑1:-15V ~ -3V 、 逻辑0:+3V ~ +15V

一般可达10~20米

全双工

RS-485

RS485采用差分信号负逻辑,即+2v–+6v表示‘0’,-6v–2v表示‘1’。

最远可达1200米

半双工通信

2、协议层:

在串口通讯的协议层中,规定了数据包的内容,它由启始位数据位校验位以及停止位组成,通讯双方的数据包格式要约定一致才能正常收发数据;

启始位由高电平拉低1个逻辑位表示

数据有效数据的长度常被约定为5、6、7 或8 位长

校验位占1个位,有奇校验和偶校验

停止位由低电平拉高,0.5、1、1.5 或2 个逻辑位表示

波特率:一般使用9600bps/s,或者115200bps/s;波特率越高,数据通信越快,但越不稳定。

3、STM32代码中使用过程串口步骤:

(1) 初始化UART时钟,GPIO时钟;

(2) 初始化TX(复用推挽输出),RX(输入)的GPIO;

(3) 初始化UART: 波特率,起始位,数据位,校验位,停止位;

(4) 使能串口;

(5) 配置串口中断:中断优先级;

(6) 是否开DMA??

(7) 使能串口中断:接收字节中断,空闲中断等;

(8) 编写中断服务函数:

(9) 判断中断标志位,清除中断标志位,读取串口数据。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现低功耗设计的嵌入式系统技术

(本文为简单介绍,观点来源网络) 在嵌入式系统设计中,追求低功耗已成为一个核心指标,旨在延长设备的运行时间并提升能效。实现这一目标的途径是多元的,涉及从硬件选型到软件算法的各个层面。 首先&#xf…

【Py/Java/C++三种语言详解】LeetCode每日一题240217【二叉树BFS】LeetCode429、N叉树的层序遍历

有LeetCode交流群/华为OD考试扣扣交流群可加 948025485 可上全网独家的 欧弟OJ系统 练习华子OD、大厂真题 绿色聊天软件戳 od1336了解算法冲刺训练 文章目录 题目链接题目链接题目描述解题思路DFS和BFS异同用队列维护的BFS 代码PythonJavaC时空复杂度 相关习题华为OD算法/大厂面…

基于MapVGL的地理信息三维度数据增长可视化

写在前面 工作中接触,简单整理博文内容为 基于MapVGL的地理信息维度数据增长可视化 Demo理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都…

2.17学习总结

tarjan 【模板】缩点https://www.luogu.com.cn/problem/P3387 题目描述 给定一个 �n 个点 �m 条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大。你只需要求出这个权值和。 允许多次经过一条边或者…

微信小程序步数返还的时间戳为什么返回的全是1970?

微信小程序步数返还的时间戳为什么返回的全是1970? 将返回的时间 乘以 1000 再 new Date() 转化就对了 微信返回的是秒S单位的,我们要转化为毫秒ms单位,才能进行格式化日期。 微信给我们下了个坑, 参考: https://d…

市场复盘总结 20240208

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 二进三: 进级率中 25% 最常用的…

LGAMEFI基于BPL公链开发的第一生态:开启RWA游戏娱乐与DeFi融合的新纪元

在去中心化金融(DeFi)与游戏娱乐的结合趋势中,BPL公链上的LGAMEFI项目代表了前沿的技术革新和市场领导。这种将web2上成熟页游进行RWA链改,不仅仅是将游戏热门领域融合,更是在寻找一种全新的参与者经验,将玩…

第五节笔记:LMDeploy 大模型量化部署实践

大模型部署背景 参数用FP16半精度也就是2字节,7B的模型就大约占14G 2.LMDeploy简介 量化降低显存需求量,提高推理速度 大语言模型推理是典型的访问密集型,因为是decoder only的架构,需要token by token的生成,因…

从代码的层面掌握LLM的路线

原则:从易到难,只用 pytorch 从第一个项目来熟悉 transformer 的使用; 从第二个项目来掌握对训练数据的使用方法及 transformer 的 decoder 的细节; 从第三个项目来理解 LLM 的整个过程; 1,Transformer t…

C++-手把手教你模拟实现string

1.string的成员变量 模拟实现string只需要三个成员变量,capacity,size,_str,也就是容量,数据大小,指向字符串的指针。 2.string的构造函数 2.1 使用字符串构造 使用字符串来构造一个string类的对象&…

Days 33 ElfBoard 固定CPU频率

ELF 1开发板选用的是主频800MHz NXP的i.MX6ULL处理器。根据实际的应用场景,如果需要降低CPU功耗,其中一种方法可以将CPU频率固定为节能模式,下面以这款开发板为例给小伙伴们介绍一下固定CPU频率的方法。 先来介绍一下与CPU频率相关的命令&…

前端架构: 调试与发布本地脚手架最佳实践梳理

脚手架本地调试标准流程 1 )链接本地脚手架 就是当我们这个脚手架开发好还没上线的时候可以进入到脚手架的一个目录, 通过 npm link 完成这个操作$ cd your-cli-dir$ npm link这个操作的含义是将当前的项目链接到node全局的 node_modules 中作为一个库文件, 并且还…

希捷与索尼集团合作生产HAMR写头激光二极管

最近有报道指出,希捷(Seagate)在生产其采用热辅助磁记录(HAMR)技术的大容量硬盘时,并非所有组件都在内部制造。根据日经新闻的一份新报告,希捷已与索尼集团合作,由索尼为其HAMR写头生…

重塑高校评价体系,缓解内卷,培养有远见的研究者

重塑高校评价体系,缓解内卷,培养有远见的研究者 摘要:当前高等教育和科研环境中普遍存在的“非升即走”制度,尽管表面上看似激励科研人员努力工作,但实际上反映了学术界的内卷状况。这一制度的设置在人才供过于求的背景…

实验二 物理内存管理-实验部分

目录 一、知识点 1、计算机体系结构/内存层次 1.1、计算机体系结构 1.2、地址空间&地址生成 1.3、伙伴系统(Buddy System) 2、非连续内存分配 2.1、段式存储 2.2、页式存储 2.3、快表和多级页表 2.4、段页式存储 3、X86的特权级与MMU 3.…

FPGA中的模块调用与例化

目录 一、模块调用与实例化 1.1 模块调用 1.2 模块实例化 1.3 Verilog例化语句及其用法 1.3.1 例化语句的基本格式 1.3.2 实例化三种不同的连接方法 二、模块调用实例-全加器与半加器 2.1 半加器模块 2.2 全加器模块 三、参数定义关键词与整数型寄存器 3.1 参数定义关…

乡政府|乡政府管理系统|基于Springboot的乡政府管理系统设计与实现(源码+数据库+文档)

乡政府管理系统目录 目录 基于Springboot的乡政府管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、活动信息管理 3、新闻类型管理 4、新闻动态管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推…

视觉设计师的项目评审复盘攻略:如何提升设计质量与效率

视觉设计师的角色是至关重要的,以确保设计项目满足预期的质量和结果。作为一名视觉设计师,有必要进行定期的项目审查,以确保项目在正轨上进行,并尽早解决任何问题。在本文中我们将讨论可视化设计人员如何做好项目评审,…

ascii码,unicode编码集和utf编码方式

ASCII码 ASCII码使用7位二进制数表示一个字符,共定义了128个字符,包括基本的拉丁字母、数字、标点符号和一些控制字符。每个字符都被赋予一个唯一的数值,这个数值在0到127之间。 Unicode编码集 Unicode是一个字符编码标准,它为…

吴恩达机器学习全课程笔记第一篇

目录 前言 P1 - P8 监督学习 ​无监督学习 P9-P14 线性回归模型 成本(代价)函数 P15-P20 梯度下降 P21-P24 多类特征 向量化 多元线性回归的梯度下降 P25-P30 特征缩放 检查梯度下降是否收敛 学习率的选择 特征工程 多项式回归 前言…