(四)stm32之通信协议

一.串口通信

1、全双工、半双工、单工
单工:只能一个人传输,只能向一个方向传输
半双工:只能一个人传输,可以多个方向传输
全双工:多方传输,多个方向传输

2、同步通信、一步通信
异步通信:双方时钟可以不同步,发送的信息封装(加上起始位、停止位)实现同步,效率低,用在低速传输中
同步通信:使用频率一致的时钟,数据帧通过独特的bit串作为启停标志,效率高,适合高速传输

3、波特率
数据传输速率使用波特率来表示,单位bps(bits per second)

串口是一种应用十分广泛的通讯接口,串口成本低、容易使用、通信线路简单,可实现两个设备的互相通信
单片机的串口可以使单片机与单片机、单片机与电脑、单片机与各式各样的模块互相通信,极大地扩展了单片机的应用范围,增强了单片机系统的硬件实力
硬件电路
简单双向串口通信有两根通信线(发送端TX和接收端RX)
TX与RX要交叉连接
当只需单向的数据传输时,可以只接一根通信线
当电平标准不一致时,需要加电平转换芯片
在这里插入图片描述
电平标准是数据1和数据0的表达方式,是传输线缆中人为规定的电压与数据的对应关系,串口常用的电平标准有如下三种:

电平标准
TTL电平:+3.3V或+5V表示1,0V表示0
RS232电平:-3-15V表示1,+3+15V表示0
RS232是一种串行通信标准,全称为“推荐标准232”(Recommended Standard 232),由电子工业联盟(EIA)在1960年代制定。RS232广泛用于计算机和各种设备之间的串行数据传输,如调制解调器、打印机、扫描仪等。RS232定义了电气特性、信号功能、连接器类型和信号线的物理连接方式。

RS232的特点:

  1. 电气特性:RS232使用负逻辑电平,逻辑“1”通常表示为-3V到-15V之间的电压,而逻辑“0”表示为+3V到+15V之间的电压。这种电平标准允许在较长的电缆上进行可靠的数据传输。

  2. 信号线:RS232标准定义了多条信号线,包括发送数据(TXD)、接收数据(RXD)、请求发送(RTS)、清除发送(CTS)、数据终端就绪(DTR)、数据设备就绪(DSR)、数据设置就绪(DSR)、载波检测(DCD)等。

  3. 连接器:RS232标准最初使用DB-25连接器,后来随着设备的简化,DB-9连接器变得更为常见。DB-9连接器通常有9个引脚,而DB-25连接器有25个引脚。

  4. 通信模式:RS232支持全双工通信,即数据可以在两个方向上同时传输。

  5. 速率和距离:RS232标准支持的最高数据传输速率为20kbps(千比特每秒),在较低的数据速率下,传输距离可以达到15米以上。随着数据速率的提高,传输距离会相应减少。

RS232的应用:

RS232由于其简单性和可靠性,在许多应用中被广泛使用。例如:

  • 计算机与外围设备:连接计算机与打印机、扫描仪等外围设备。
  • 工业控制:用于工业设备之间的通信。
  • 测试设备:连接测试仪器和计算机进行数据交换。
  • 嵌入式系统:在嵌入式系统中,RS232常用于调试和数据传输。

RS232的局限性:

尽管RS232非常普及,但它也有一些局限性:

  • 速率限制:随着数据传输需求的增加,RS232的速率限制成为了一个问题。
  • 距离限制:在高速率下,RS232的传输距离受到限制。
  • 电平差异:RS232的电平标准与现代电子设备常用的TTL电平不兼容,需要电平转换。

随着技术的发展,RS232逐渐被USB、RS485、以太网等更高速、更远距离的通信标准所取代。然而,由于其历史的普及性和设备的广泛存在,RS232在许多场合仍然被使用。

RS485电平:两线压差+2+6V表示1,-2-6V表示0(差分信号)
RS485是一种电气接口标准,用于实现多点通信网络中的串行数据传输。它由电子工业联盟(EIA)在1983年发布,是RS232的改进版,旨在提供更远距离和更高数据传输速率的通信能力。RS485广泛应用于工业自动化、楼宇自动化、电信、电力系统等领域。

RS485的特点:

  1. 差分信号:RS485使用差分信号传输,即使用两根线(A和B)来传输一个信号,其中A线传输正信号,B线传输负信号。这种设计可以有效抑制噪声干扰,提高信号的抗干扰能力。

  2. 多点通信:RS485支持多点通信,即一个主设备可以与多个从设备进行通信。这使得RS485非常适合于构建分布式控制系统。

  3. 较长的传输距离:RS485能够在较长距离上进行可靠的数据传输,通常在1200米范围内可以达到100kbps的数据速率。

  4. 较高的数据速率:RS485支持较高的数据速率,最高可达10Mbps,但实际应用中通常会根据传输距离和网络条件进行调整。

  5. 半双工通信:RS485通常工作在半双工模式下,即数据在同一时刻只能在一个方向上传输,但可以通过控制信号来切换发送和接收状态。

RS485的应用:

RS485由于其高可靠性和远距离传输能力,在许多领域得到了广泛应用:

  • 工业自动化:用于连接PLC(可编程逻辑控制器)、传感器、执行器等设备。
  • 楼宇自动化:用于智能建筑中的灯光控制、安全监控等系统。
  • 电力系统:用于电力监控和控制设备之间的通信。
  • 电信设备:用于远程通信设备之间的数据传输。

RS485的局限性:

尽管RS485具有许多优点,但它也有一些局限性:

  • 半双工通信:RS485的半双工通信模式限制了数据传输的效率,特别是在需要同时进行双向通信的应用中。
  • 复杂的网络设计:多点通信网络的设计和调试相对复杂,需要考虑终端匹配、信号反射等问题。

RS485作为一种成熟的技术,虽然在某些方面可能不如现代的通信标准(如以太网、CAN总线等)先进,但由于其稳定性和成本效益,它在许多应用中仍然是首选的通信方式。随着技术的发展,RS485也在不断地进行改进,以适应新的应用需求。
波特率:串口通信的速率
起始位:标志一个数据帧的开始,固定为低电平
数据位:数据帧的有效载荷,1为高电平,0为低电平,低位先行
校验位:用于数据验证,根据数据位计算得来
停止位:用于数据帧间隔,固定为高电平

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
波特率
发送器和接收器的波特率由波特率寄存器BRR里的DIV确定
计算公式:波特率 = fPCLK2/1 / (16 * DIV)

数据模式
HEX模式/十六进制模式/二进制模式:以原始数据的形式显示
文本模式/字符模式:以原始数据编码后的形式显示

serial.c

#include "stm32f10x.h"                  // Device header
#include <stdio.h>
#include <stdarg.h>
#include "Serial.h"uint8_t Serial_RxData;
uint8_t Serial_RxFlag;void Serial_Init(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE)

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

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

相关文章

【全网最全】2024年辽宁省大学生数学建模竞赛完整思路解析+代码+论文

我是Tina表姐&#xff0c;毕业于中国人民大学&#xff0c;对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在&#xff0c;我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合…

Vue和Element UI 路由跳转,侧边导航的路由跳转,侧边栏拖拽

首先看布局&#xff0c;因为我的用于页面显示的 <router-view> 是通过重定向定位到登陆页的&#xff0c;然后通过登陆页跳转到主页。项目中用到了点击侧边栏的跳转&#xff0c;所以记录下来&#xff0c;方便有需要的人用到~ 阐述 &#xff08;1&#xff09;.content{ di…

26.7 Django单表操作

1. 模型管理器 1.1 Manager管理器 Django ORM中, 每个Django模型(Model)至少有一个管理器, 默认的管理器名称为objects. objects是一个非常重要的管理器(Manager)实例, 它提供了与数据库进行交互的接口.通过管理器, 可以执行数据库查询, 保存对象到数据库等操作.objects管理器…

【Unity学习笔记】第十九 · 物理引擎约束求解解惑(LCP,最优,拉格朗日乘数法,SI,PGS,基于冲量法)

转载请注明出处: https://blog.csdn.net/weixin_44013533/article/details/140309494 作者&#xff1a;CSDN|Ringleader| 在学习物理引擎过程中&#xff0c;有几大问题一直困扰着我&#xff1a; 约束求解到底是LCP还是带约束最优问题&#xff1f;约束求解过程中拉格朗日乘数法…

SpringBoot整合JWT示例教程

1. JWT简介 JSON Web Token (JWT) 是一种开放标准&#xff08;RFC 7519&#xff09;&#xff0c;它定义了一种紧凑且自包含的方式&#xff0c;用于在各方之间作为 JSON 对象安全地传输信息。由于这些信息是经过数字签名的&#xff0c;因此可以被验证和信任。JWT 通常用于身份验…

openharmony上传图片,并获取返回路径

适用条件&#xff1a; openharmony开发 4.0 release版本&#xff0c;对应能力API10 一直不断尝试&#xff0c;一会用官方提供的上传文件&#xff0c;一会用第三方库的axios都不行&#xff0c; 一会报错‘没权限&#xff0c;一会报错’路径错误&#xff0c;还有报错‘401参数错…

本地部署,去除动漫图像背景Anime Remove Background

目录 摘要 引言 深度学习在动漫角色中的应用 1.​U-Net 2.Mask R-CNN 3.ISNet 模型 4.MODNet 模型 5.InSPyReNet 模型 本地部署 运行效果 测验结果​ Tip&#xff1a; 摘要 动漫图像背景去除是一项在图像处理和计算机视觉领域具有重要应用的技术&#xff0c;广泛应用于…

奇舞周刊第533期:单点登录(SSO)实现详解

奇舞推荐 ■ ■ ■ 单点登录&#xff08;SSO&#xff09;实现详解&#xff01;&#xff01; 单点登录是什么&#xff1f;你是怎么理解的&#xff1f;单点登录是如何实现的。 纯前端怎么实现检测版本更新&#xff0c;请看这篇&#xff01; 在传统的多页Web应用中&#xff0c;每次…

CSS实现table表格:隔行换色的效果

表格是网页中十分重要的组成元素。表格用来存储数据&#xff0c;包含标题、表头、行和单元格。在HTML语言中&#xff0c;表格标记使用符号<table>表示。定义表格光使用<table>是不够的&#xff0c;还需要定义表格中的行、列、标题等内容。推荐博文&#xff1a;《HT…

Mac M1安装配置Hadoop+Flink SQL环境

Flink 1.18.1 Hadoop 3.4.0 一、准备工作 系统&#xff1a;Mac M1 (MacOS Sonoma 14.3.1) JDK&#xff1a;jdk1.8.0_381 &#xff08;注意&#xff1a;尽量一定要用JDK8&#xff0c;少用高版本&#xff09; Scala&#xff1a;2.12 JDK安装在本机的/opt/jdk1.8.0_381.jdk/C…

Uniapp鸿蒙项目实战

Uniapp鸿蒙项目实战 24.7.6 Dcloud发布了uniapp兼容鸿蒙的文档&#xff1a;Uniapp开发鸿蒙应用 在实际使用中发现一些问题&#xff0c;开贴记录一下 设备准备 windows电脑准备&#xff08;家庭版不行&#xff0c;教育版、企业版、专业版也可以&#xff0c;不像uniapp说的只有…

html5——CSS3_文本样式属性

目录 字体样式 字体类型 字体大小 字体风格 字体的粗细 文本样式 文本颜色 排版文本段落 文本修饰和垂直对齐 文本阴影 字体样式 字体类型 p{font-family:Verdana,"楷体";} body{font-family: Times,"Times New Roman", "楷体";} …

html5——CSS高级选择器

目录 属性选择器 E[att^"value"] E[att$"http"] E[att*"http"] 关系选择器 子代&#xff1a; 相邻兄弟&#xff1a; 普通兄弟&#xff1a; 结构伪类选择器 链接伪类选择器 伪元素选择器 CSS的继承与层叠 CSS的继承性 CSS的层叠性 …

华为HCIP Datacom H12-821 卷37

1.多选题 下面关于Network- Summary-LSA 描述正确的是 A、Network- Summary-LSA中的Metric被设置成从该ABR到达目的网段的开销值 B、Network- Sumary-LSA中的Net mask 被设置成目的网段的网络掩码 C、Network- Summary-LSA 是由ASBR产生的 D、Network- Summary-LSA 中的Li…

php安装Imagick扩展 处理pdf为图片

这个方法是使用源码编译安装&#xff0c;适用于php编译安装和包安装。如果有pecl&#xff0c;直接安装就行&#xff0c;我这是因为多个环境怕直接使用pecl工具导致混乱。 由于浏览器显示大量pdf不方便&#xff0c;我这先将pdf转化为图片再显示 如果没有安装php&#xff0c;这是…

网络层的角色与重要性:互联网通信的关键

本章讨论网络层及网络互连问题&#xff0c;也就是讨论多个网络通过路由器互连成为一个互连网络的各种问题。在介绍网络层提供的两种不同服务后&#xff0c;我们开始讲解本章的核心内容——网际协议&#xff08;IP&#xff09;&#xff0c;这是本书的一项重点内容。只有较深入地…

登录/注册

目录 1.HTML 2.CSS 3.JS 4.资源 5.运行结果 6.下载链接 7.注意事项 1.HTML <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-sca…

Zabbix配置JAVA JMX监控

JAVA JMX监控简介 官方文档&#xff1a;https://www.zabbix.com/documentation/current/zh/manual/concepts/java Zabbix Java gateway以 Zabbix 守护进程方式原生支持监控 JMX 应用程序。Zabbix Java gateway 的守护进程是用 Java 编写。为了在特定主机上找到 JMX 计数器的值…

Java设计模式的7个设计原则

Java设计模式的7个设计原则是面向对象设计领域中的重要指导方针&#xff0c;它们旨在提高软件系统的可维护性、可扩展性、可复用性和灵活性。以下是这7个设计原则的详细解释&#xff1a; 1. 开闭原则&#xff08;Open-Closed Principle, OCP&#xff09; 定义&#xff1a;一个…

LCM通讯的使用

本文主要介绍LCM通讯的基本使用&#xff0c;内容主要整理自官网 https://lcm-proj.github.io/lcm/index.html LCM&#xff0c;即Library for Communication and Marshalling&#xff0c;是一组用于消息传递与数据封装的库和工具&#xff0c;它主要的面向对象是要求高带宽、低延…