32stm

波特率:
        用途:规定串口通信的速率。串口一般是使用异步通信,所以需要双方约定一个通信的速率。比如发送方每隔一秒发送一位,那接收方就得每个一秒接收一位,如果波特率是1000,那么一秒就发送1000位,每一位发送的间隔时间为1ms。如果接收快了就会重复接收某些位,接收慢了就会漏掉某些位。波特率是每秒传输码元的个数,单位是码元/s,或者直接叫波特(Baud),另外还有个速率表示叫比特率,意思是每秒传输的比特数,单位是bit/s,或者叫bps。在二进制调制的情况下,一个码元就是一个bit,此时波特率就等于比特率。单片机串口的通信基本都是比特率调制,高电平表示1,低电平表示0,一位就是1bit。串口的波特率经常会和比特率混用,因为这两个说法的数值相等。注意如果是多进制调制,那么波特率和比特率就不一样。

起始位:
        标志一个数据帧的开始,固定位低电平。串口的空闲状态是高电平,也就是没有数据传输的时候,引脚必须置高电平。要开始传输的时候必须先发送一个起始位,这个起始位必须是低电平来打破空闲时候的高电平,产生一个下降沿。这个下降沿将会告诉接收设备,这一帧数据要开始了。如果没有起始位的话,发送八个1,那么数据线一直是高电平,没有任何数据波动,接收方无法判断是否发送了数据。所以一定要有一个固定为低电平的起始位。

数据位:
        比如发送一个字节是0x0f,先转化为二进制 0000 1111 ,地位先行,所以数据要从地位开始发送,也就是将1111 0000依次放在引脚上。可以按波特率要求,定时翻转电平,产生相应的波形便可以发送该数据。

校验位:
        这里串口使用的是一种叫做奇偶校验的验证方法,用来判断数据传输是否出错。如果数据出错了可以选择丢弃或者要求重传。校验可以选择三种方式,分别是:无校验、奇校验和偶校验。

无校验:
        无校验就是不需要校验位,波形就是左边的图(串口参数及时序下方的图),包含有起始位、数据位和停止位三个部分。

奇偶校验:
        奇校验和偶校验的波形是右边的图(串口参数及时序下方的图),包含起始位、数据位、校验位和停止位四个部分。

奇校验:
        如果使用了奇校验,那么包括校验位在内的9位数据会出现奇数个1,比如传输的是

0000 1111,目前总共是4个1,是偶数个,那么校验位就需要再补一个1,连同校验位一共就是0000 1111 1 一共五个1,保障1为奇数。如果数据是0000 1110一共三个1是奇数个,那么校验位就补一个0,连同校验位一共就是0000 1110 0,总共还是3个1。发送方在发送数据后会补一个校验位,保证1的个数为奇数。接收方在接收数据后会验证数据位和校验位,如果1的个数还是奇数,那就认为数据没有出错。如果在传输过程中,因为干扰有一位由1变为0,或者由0变成1,那么整个数据的奇偶特性就会发生变化,接收方一验证,发现1的个数不是奇数,那就认为传输出错,可以选择丢弃或者重传。

偶校验:
        保证1 的个数是偶数,校验方法同理奇校验。

缺点:
        当两位数据同时出错时,奇偶特性不变时,那就校验不出,奇偶校验只能保证一定程度上的校验。如果要求更高的检出率,可以使用CRC校验,好用但是复杂
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/weixin_74859061/article/details/136503332

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

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

相关文章

nestjs 管道验证DTO

我将dto文件全收集到一个dto文件夹里,可按照文档建议。 1.安装依赖 pnpm i --save class-validator class-transformer参考文档https://github.com/typestack/class-transformerhttps://github.com/typestack/class-transformer https://github.com/typestack/cl…

使用测试驱动开发模式编写智能合约

hardhat简介 hardhat是一个以太坊智能合约开发框架,主要用于简化和加速以太坊区块链上的智能合约开、测试和部署,提供了许多工具帮助开发人员更轻松地构建和维护智能合约项目,以下是他的一些主要功能: 智能合约开发:h…

spark-sql显示字段名称

spark-sql显示表头header cdh6.3.2集群中,使用命令启动spark-sql,执行 select name from table_001 limit 10; 返回结果: aaa bbb ccc 实现效果: name: aaa bbb ccc 追加–hiveconf hive.cli.print.headertrue cd /…

每周编辑精选|7×24h 的 AI 直播间来啦!一键使用 GPT-SoVITS 声音克隆教程上新

📢📢 好消息!好消息!📺「超神经电视台」在 bilibili 上线啦~ 「超神经电视台」会「724h」不间断直播 AI 领域的实用课程与行业大会等, 每周我们会在文章结尾发布下周的节目预告哦! 点开看看&a…

2. C++ 对象内存布局

C 对象内存布局 多态 众所周知,C为了实现多态(运行期),引进了虚函数(语言标准支持的,其它实现方式不在本文讨论范围内),而虚函数的实现机制则是通过虚函数表。这块的知识点不算多,却非常重要,因此往往是面…

FlinkCDC快速搭建实现数据监控

引入依赖 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelV…

MySQL 针对逗号拼接的数据字段转行思路

一、MySQL 针对逗号拼接的数据字段转行思路 在 MySQL 中我们有可能为了方便操作&#xff0c;有时会将一个字段存储多个信息&#xff0c;使用英文逗号隔开&#xff0c;当然这种情况属于对数据库的设计上有些欠妥。但如果遇到了这种情况又需要对数据进行统计的情况就有点棘手了&…

golang常见面试题

1. go语言有哪些优点、特性&#xff1f; 语法简便&#xff0c;容易上手。 支持高并发&#xff0c;go有独特的协程概念&#xff0c;一般语言最小的执行单位是线程&#xff0c;go语言支持多开协程&#xff0c;协程是用户态线程&#xff0c;协程的占用内存更少&#xff0c;协程只…

STM32CubeIDE基础学习-设置输出HEX和BIN文件的方法

STM32CubeIDE基础学习-设置输出HEX和BIN文件的方法 前言 当某些时候&#xff0c;需要把一个程序下载到单片机里面进行功能验证或者看结果时&#xff0c;可以用串口软件来烧录程序&#xff0c;而不用再打开程序工程在线烧录程序这么麻烦了&#xff0c;那么就需要该工程文件夹下…

电脑记事本怎么查看字数 记事本字数便捷查看方法

在数字化的时代&#xff0c;电脑记事本已成为我记录生活、工作的得力助手。相较于传统的纸质笔记本&#xff0c;它的便捷性不言而喻&#xff1a;随时随地&#xff0c;打开就能写&#xff0c;无需担心纸张用尽或笔墨不干的尴尬。但有一个问题一直困扰着我&#xff0c;那就是如何…

UI学习 一

教程&#xff1a;Accessibility – Material Design 3 需要科学上网&#xff0c;否则图片显示不出来。设计教程没有图片说明&#xff0c;不容易理解。 优化UI方向 清晰可见的元素足够的对比度和尺寸重要性的明确等级一眼就能辨别的关键信息 传达某一事物的相对重要性 将重…

Centos7 安装mongoDB

下载安装包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.12.tgz 解压 tar -zxvf mongodb-linux-x86_64-3.2.12.tgz移动到指定位置 mv mongodb-linux-x86_64-3.2.12/ /usr/local/mongodb在/usr/local/mongodb下创建文件夹 cd /usr/local/mongodb m…

(二十二)从零开始搭建k8s集群——高可用kubernates集群搭建上篇

前言 本节内容分为上、中、下三篇&#xff0c;上篇主要是关于搭建k8s的基础环境&#xff0c;包括服务器基本环境的配置&#xff08;网络、端口、主机名、防火墙、交换分区、文件句柄数等&#xff09;、docker环境部署安装配置、镜像源配置等。中篇会介绍k8s的核心组件安装、k8…

xss.pwnfunction.com靶机 Warmups

通关要求弹出警告框alert(1337) 没有用户交互 不能使用外链接 在chrome中测试 Ma Spaghet! 通过分析代码我们可以看到它直接用innerHTML将接收的内容赋值 但是我们不能使用<script>标签因为&#xff1a;HTML 5 中指定不执行由 innerHTML 插入的 <script> 标签。 所…

网络原理初识

一、IP地址 概念 IP 地址主要用于标识网络主机、其他网络设备&#xff08;如路由器&#xff09;的网络地址。简单说&#xff0c; IP 地址用于定位主机 的网络地址 。 就像我们发送快递一样&#xff0c;需要知道对方的收货地址&#xff0c;快递员才能将包裹送到目的地。 二、…

YOLOv8原创改进:原创自研head创新 | 空间上下文感知模块(SCAM)结合超轻量高效动态上采样DySample | 小目标涨点系列

💡💡💡本文独家改进:YOLOV8 head创新,1)一种超轻量高效动态上采样DySample, 具有更少的参数、FLOPs,效果秒杀CAFFE和YOLOv8网络中的nn.Upsample;2)加入空间上下文感知模块(SCAM)进一步提升检测精度; 改进结构图如下: 💡💡💡在多个数据集下验证能够涨点…

使用Unreal Engine 5创建逼真人物化身(meta human)的教程

这是一个关于使用Unreal Engine 5创建逼真人物化身(meta human)的教程视频。作者们使用PolyCam应用程序对一位名叫Angelina的女性进行了3D人体扫描,然后在Blender中清理扫描数据,并将其导入Unreal Engine 5。接着他们利用MetaHuman Creator网站进行了进一步的定制,将Angelina的…

Java中SpringBoot四大核心组件是什么

一、Spring Boot Starter 1.1 Starter的应用示例 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency><groupId>org.mybatis.sprin…

Java开发从入门到精通(一):Dubbo

目录&#xff1a; 服务注册与发现机制 服务调用 线程派发机制 1、服务注册与发现机制 Dubbo的服务注册与发现机制如下图所示&#xff1a; Dubbo中存在4类角色&#xff1a; Registry 注册中心。 Consumer 服务调用者、消费端。 Provider 服务提供者。 Monitor 监控中心。 调用…

docker学习笔记——对数据卷的一些简单命令

高级数据卷 docker volume ls&#xff1a;查看docker所有维护的数据卷。 docker volume inspect 数据卷别名&#xff1a;查看数据卷的详细信息。 docker volume rm 数据卷的别名&#xff1a;删除数据卷。 docker volume create 数据卷别名&#xff1a;创建一个别名数据卷。