STM32基础教程 p18 UART通信协议基础知识

1 UART通信协议简介

在这里插入图片描述
UART通信协议详细介绍

1.1 串行通信的简介

1. 单工通信:学校广播
2. 半双工通信:对讲机
3. 全双工通信:手机打电话

在这里插入图片描述
UART:通用的同步异步收发器
在这里插入图片描述

1.1.1 同步通信

组成:数据线、时钟线、偏选信号线
收发双方由一根时钟信号线连接,同步在一起;因此在数据的发送和接收,都知道相应的时间;
在这里插入图片描述

1.1.1 异步通信

收发双方只由一根数据信号线连接
想要:实现A到B信号的接收和发送:必须具备以下几个点

1. A和B的电平基准要统一(比如A和B的高低电平基准,如果A为5.5v为高电平1,B为3.3V为高电平为1,那么就要统一高低电平基准);
2. 控制信息,要知道A和B开始发送信号的时间(同步通信有一根cs线:专门用来处理这样的功能,拉高电平代表开始通信,反之结束通信);
3. 数据信息;

1.1.1.1 异步通信的工作原理

在这里插入图片描述

  1. 空闲,未发送信息时,A和B双方都发射高电平,如果A的电平由高突然变低,说明A开始发送消息,B收到一个拉低低电平信号,开始准备接收数据;
  2. 在起始位拉低一个低电平后就是一个比特位之后,开始发送数据(这个拉低电平的位个数,可以由自己来定义);
  3. 在拉低电平位数后,开始发送数据(不同的处理器发送的数据位是不同的,一般是5到8位,一般用8位,因为char 型变量是8位,1B,这里用char型方便,这里的例子见上图可以看出);
  4. 接着规定奇欧校验的个数;
  5. 接着规定停止位;
  6. 接着拉高电平,完成一次数据的发送;
    一般格式8n1:8位数据位,n:没有奇欧校验;1:一位停止位;
  7. 还要规定收发双方的数据位宽度一样;就是双方的数据频率一样,波特率(bps每秒钟发送的数据位数)就是管理数据频率的;如果双发波特率一样,那么一个比特占的时间就知道;
    在这里插入图片描述
    总结:
    收发双方在进行通信是要保证以下几点

1:数据位长度确定
.2:确定奇欧校验

3:停止位的长度;
4:波特率;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

从文字到使用,一文读懂Kafka服务使用

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

大数据在互联网营销中的应用:案例与策略

互联网时代的营销领域正经历着一场由大数据驱动的变革。在2023年,大数据的应用已成为推动市场策略和决策的关键因素。本文将探讨大数据如何影响互联网营销,并通过实际案例分析展示其在提升营销效果方面的作用。 首先,通过分析海量数据&#x…

NumSharp

github地址:https://github.com/SciSharp/NumSharp High Performance Computation for N-D Tensors in .NET, similar API to NumPy. NumSharp (NS) is a NumPy port to C# targetting .NET Standard. NumSharp is the fundamental package needed for scientific …

第二十一章——网络通信

一.网络程序设计基础 1.局域网与互联网 2.网络协议 1.IP协议 IP是Internet Protocol的简称,是一种网络协议。 1.1 TCP/IP层次结构 2.TCP与UDP协议 TCP可保证数据从一端送至另一端时,能够确实送达,而且抵达的数据的排列顺序和送出时的顺序相…

设备间的指令通信

指令通信的概念 要进行设备和设备之间的交流就需要通过串口发送数据进行交流 而串口发送简单的数据只需要传输介质 但是要发送复杂的数据就需要介质和传输的规则了 三种应用场景 比如在上位机和mcu之间 通过上位机管理控制器 从而控制电池 单片机和单片机之间 用户输入数据到…

国产麒麟操作系统部署记录

前提:部署项目首先要安装各种软件,在内网环境下无法在线下载。 思路:首先部署一台能上网的系统,在此系统下只下载包,然后传到另一台内网系统下进行安装; 1、最开始yum未安装,因此需要先安装yu…

C语言中的动态内存管理

在C语言中,动态内存管理是通过一系列的标准库函数来实现的,这些函数包括malloc, free, calloc 和 realloc。它们允许程序在运行时动态地分配和释放内存,这是管理复杂数据结构(如链表、树等)时非常有用的功能。 为什么…

硬件基础:运放

理想运算放大器 理想运算放大器放大倍数无穷大;输入端阻抗无穷大,所以输入端电流为0;输出电压和负载无关,不管负载怎么变化,输出电压都是固定的。 还有个就是输出阻抗为0; 输出阻抗越小,输出时就…

Avalonia中如何实现文件拖拽上传

前言 前面我们讲了在Avalonia中如何将View事件映射到ViewModel层感兴趣的读者可以看一下,本章我们将讲一下在Avalonia框架下如何实现文件和文字的拖拽到指定区域进行处理和上传。 先看效果 界面设计比较简单,还是在前一张的基础上加了一个指定区域&…

基于springboot + vue的社区医院信息系统

qq(2829419543)获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:springboot 前端:采用vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件&#xf…

leetcode 622. 设计循环链表

这道题讲了两种方法,第一个代码是用数组实现的,第二个是用链表实现的,希望对你们有帮助 (最好在VS自己测试一遍,再放到 leetcode上哦) 下面的是主函数(作参考),静下心来…

Ubuntu安装向日葵【远程控制】

文章目录 引言下载向日葵安装向日葵运行向日葵卸载向日葵参考资料 引言 向日葵是一款非常好用的远程控制软件。这一篇博文介绍了如何在 Ubuntu Linux系统 中安装贝瑞向日葵。🏃💥💥💥❗️ 下载向日葵 向日葵官网: https://sunl…

动态规划学习——最长回文子序列,让字符串变成回文串的最小插入次数

一,最长回文串 1.题目 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 示例 1: 输入&…

【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)三种strlen模拟实现

🌈write in front :🔍个人主页 : 啊森要自信的主页 ✏️真正相信奇迹的家伙,本身和奇迹一样了不起啊! 欢迎大家关注🔍点赞👍收藏⭐️留言📝>希望看完我的文章对你有小小的帮助&am…

煤矿电力监控系统

煤矿电力监控系统是一种用于煤矿电力系统的监控解决方案。该系统在重点煤矿的矿井变电站、主运输、主通风、主排水、主副提升等重要设备上加装智能用电融合终端,实时监测煤矿重要设备的电流、电压、负载等主要数据变化。为管理人员提供实时监测、报表管理、告警中心…

Centos7中的mysql环境安装以及卸载【Linux】

Linux中的mysql环境安装【Linux】 一. 检测mysql和mariadb是否存在二. 安装mysql2.1查看自身系统版本2.2 查看yum源2.3 选择yum源头2.4 安装yum源2.5 安装mysql2.6 启动mysql服务2.7 首次登录mysql 三. 卸载mysql3.1 关闭mysql服务3.2 查找并删除组件服务3.2.1 查找组件服务3.2…

漏洞复现-速达软件全系产品存在任意文件上传漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

阿里年薪50w和5w都是如何进行需求分析,过来围观!

工作中难免会遇到并不“完美”的需求文档,比如牵一发而动全身却不清晰的交互逻辑、子条目频繁的变更、交流缺失导致的歧义等,都会让测试在项目推进中手足无措。 一份好的需求文档,不止能够加速开发和测试的脚步,还能够提前发现风…

【尘缘送书第五期】Java程序员:学习与使用多线程

目录 1 多线程对于Java的意义2 为什么Java工程师必须掌握多线程3 Java多线程使用方式4 如何学好Java多线程5 参与方式 摘要:互联网的每一个角落,无论是大型电商平台的秒杀活动,社交平台的实时消息推送,还是在线视频平台的流量洪峰…

Unity中Batching优化的GPU实例化(3)

文章目录 前言一、UNITY_SETUP_INSTANCE_ID(v);二、在UnityInstancing.cginc文件中,看一下Unity这句话做了什么1、使用了该 .cginc 后,会自动预定义该函数2、需要满足GPU实例化条件,才会执行对应语句3、满足GPU实例化后,主要执行的…