(四)stm32之通信协议

news2024/12/24 11:44:52

一.串口通信

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.coloradmin.cn/o/1922396.html

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

相关文章

生成式AI推动药物发现革命:加速开发,降低成本

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Ubuntu 22.04.4 LTS (linux) Auditd 安全审计rm命令 记录操作

1 audit增加rm 规则 #sudo vim /etc/audit/rules.d/audit.rules -w /bin/rm -p x -k delfile #重新启动服务 sudo systemctl restart auditd #查看规则 sudo auditctl -l -w /bin/rm -p x -k delfile 2 测试规则 touch test.txt rm test.tx 3 查看日志 sudo ausear…

LDAPWordlistHarvester:基于LDAP数据的字典生成工具

关于LDAPWordlistHarvester LDAPWordlistHarvester是一款功能强大的字典列表生成工具&#xff0c;该工具可以根据LDAP中的详细信息生成字典列表文件&#xff0c;广大研究人员随后可以利用生成的字典文件测试目标域账号的非随机密码安全性。 工具特征 1、支持根据LDAP中的详细信…

liunx笔记1

线程池的基本概念是&#xff0c;在应用程序启动时创建一定数量的线程&#xff0c;并将它们保存在线程池中。当需要执行任务时&#xff0c;从线程池中获取一个空闲的线程&#xff0c;将任务分配给该线程执行。当任务执行完毕后&#xff0c;线程将返回到线程池&#xff0c;可以被…

【RNN练习】天气预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、环境及数据准备 1. 我的环境 语言环境&#xff1a;Python3.11.9编译器&#xff1a;Jupyter notebook深度学习框架&#xff1a;TensorFlow 2.15.0 2. 导…

手机和电脑通过TCP传输

一.工具 手机端&#xff1a;网络调试精灵 电脑端&#xff1a;野火网络调试助手 在开始通信之前&#xff0c;千万要查看一下电脑的防火墙是否关闭&#xff0c;否则可能会无法通信 在开始通信之前&#xff0c;千万要查看一下电脑的防火墙是否关闭&#xff0c;否则可能会无法通信…

浅析Kafka Streams消息流式处理流程及原理

以下结合案例&#xff1a;统计消息中单词出现次数&#xff0c;来测试并说明kafka消息流式处理的执行流程 Maven依赖 <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams</artifactId><exclusio…

全国大学生数据建模比赛c题——基于蔬菜类商品的自动定价与补货决策的研究分析

基于蔬菜类商品的自动定价与补货决策的研究分析 摘要 商超蔬菜不易保存&#xff0c;其质量会随着销售时间的增加而变差&#xff0c;影响商超收益&#xff0c;因此&#xff0c;基于各蔬菜品类的历史销售数据&#xff0c;制定合理的销售策略和补货决策对商超的营收十分关键。本文…

HTTP-响应协议(响应状态码、HTTP-协议解析)

HTTP-响应协议 2.3.1 格式介绍 与HTTP的请求一样&#xff0c;HTTP响应的数据也分为3部分&#xff1a;响应行、响应头 、响应体 响应行(以上图中红色部分)&#xff1a;响应数据的第一行。响应行由协议及版本、响应状态码、状态码描述组成 协议/版本&#xff1a;HTTP/1.1响应状态…

fullcalendar基础使用

fullcalendar日历插件&#xff0c;下面是实现的一个基础模版实现任务的添加修改操作。 <div><div id"calendar" ref"calendarRef"></div><el-dialogv-model"dialogTableVisible"title"添加任务"width"500&…

ASP.NET Core中创建中间件的几种方式

前言 今天我们一起来盘点一下在ASP.NET Core应用程序中添加和创建中间件常见的四种方式。 中间件介绍 ASP.NET Core中间件&#xff08;Middleware&#xff09;是用于处理HTTP请求和响应的组件&#xff0c;它们被安排在请求处理管道中&#xff0c;并按顺序执行。中间件的设计是为…

什么是IOT 可编程控制系统

IOT可编程控制系统GF-MAXCC是一种基于物联网&#xff08;Internet of Things, IoT&#xff09;技术的可编程中央控制主机。它集成了多种先进的技术和功能&#xff0c;能够在物联网系统中发挥关键作用&#xff0c;实现对多种设备的集中管理和控制。 一、定义与概述 定义&#x…

PHP全功能微信投票迷你平台系统小程序源码

&#x1f525;让决策变得超简单&#xff01;&#x1f389; &#x1f680;【一键创建&#xff0c;秒速启动】 嘿小伙伴们&#xff0c;你还在为组织投票而手忙脚乱吗&#xff1f;来试试这款全功能投票迷你微信小程序吧&#xff01;只需轻轻一点&#xff0c;无论是班级选举、社团…

家政服务小程序:提高家政服务,新商机!

当下&#xff0c;社会生活的节奏非常快&#xff0c;人们忙于工作&#xff0c;在日常生活家务清洁中面临着时间、精力不足的问题&#xff0c;因此对家政服务的需求日益增加&#xff0c;这也推动了家政行业的迅速发展。目前不少年轻人都开始涌入到了家政行业中&#xff0c;市场的…

debian 12 PXE Server 批量部署系统

pxe server 前言 PXE&#xff08;Preboot eXecution Environment&#xff0c;预启动执行环境&#xff09;是一种网络启动协议&#xff0c;允许计算机通过网络启动而不是使用本地硬盘。PXE服务器是实现这一功能的服务器&#xff0c;它提供了启动镜像和引导加载程序&#xff0c;…

报表控件DevExpress Reporting中文教程 - 如何创建穿透钻取报表?

DevExpress Reporting是.NET Framework下功能完善的报表平台&#xff0c;它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集&#xff0c;包括数据透视表、图表&#xff0c;因此您可以构建无与伦比、信息清晰的报表。 钻取报表允许用户通过单击主/活动报表文档中的…

TG创建小程序以及机器人信息

1、搜索 BotFather &#xff0c;输入命令 /newbot 创建机器人。 2、修改机器人信息 /mybots 编辑名称 : 修改机器人名称 编辑关于: 修改关于 hayden yyds&#xff0c;修改以后打开机器人会出现在下图 编辑描述 : 机器人的描述 编辑描述图片 : 机器人的图片 编辑 Botpic…

【uniApp】ucharts 实现图表下载

由于移动端和PC端功能场景的差异&#xff0c;很多移动端绘制可视化图表是没有下载需求的&#xff0c;导致其在网上提供的解决方法很少&#xff0c;通过对代码的解析发现ucharts内部封装的有saveImage方法&#xff0c;直接调用可以直接保存至手机的相册中&#xff0c;具体方法如…

【网络安全】SSRF:Microsoft Azure API 管理服务

未经许可&#xff0c;不得转载。 文章目录 正文漏洞利用 正文 Azure API管理包括三个主要组件&#xff1a;API网关、管理平面和开发者门户。这些组件默认由Azure托管并完全管理。Azure API管理可实现数字化体验、简化应用程序集成&#xff0c;支持新的数字产品&#xff0c;并促…

使用 exe4j 转换 Java jar 程序为 Windows 平台可执行文件 (.exe)

使用 exe4j 转换 Java jar 程序为 Windows 平台可执行文件 &#xff08;.exe&#xff09; 介绍exe4j 特点&#xff1a;转换全过程&#xff08;软件操作&#xff09;1、注册2、选择模式3、配置应用4、选择执行的方式&#xff08;我这里管这个叫呈现方式&#xff09;5、选择 JAR …