串口参数详解:波特率,数据位,停止位,奇偶校验位

2023-05-16

转载自:https://blog.csdn.net/sinat_35705952/article/details/89034455

串口参数详解:波特率,数据位,停止位,奇偶校验位

Winter_Q 2019-04-04 19:56:58 11987 收藏 18

分类专栏: c/c++

串口通讯,9600波特率,数据格式是8,N,1, 请问一秒可以传输多少个字节的数据?
9600,n,8,1
实际上,在发送一个字节的时候,除了需要发送8BIT数据外,还需要发送1bit开始位、1bit停止位、1bit的校验,加起来发送一个字节就是11BIT.
因此,1秒发送的字节=9600/(8+1+1+1)=?(计算一下)
简介
串口是一种非常通用的设备通信的协议(不要与通用串行总线Universal Serial Bus(USB)混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配:
波特率
这是一个衡量符号传输速率的参数。它表示每秒钟传送的符号的个数。例如300波特表示每秒钟发送300个符号。当我们提到时钟周期时,我们就是指波特率,例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。
数据位
这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、6、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。
停止位
用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
奇偶校验位
在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位为1,这样就有3个逻辑高位。高位和低位不是真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。
2
补充
编辑
比特率
在数字信道中,比特率是数字信号的传输速率,它用单位时间内传输的二进制代码的有效位(bit)数来表示,其单位为每秒比特数bit/s(bps)、每秒千比特数(Kbps)或每秒兆比特数(Mbps)来表示(此处K和M分别为1000和1000000,而不是涉及计算机存储器容量时的1024和1048576)。
波特率
波特率指数据信号对载波的调制速率,它用单位时间内载波调制状态改变次数来表示,其单位为波特(Baud)。 波特率与比特率的关系为:比特率=波特率X单个调制状态对应的二进制位数。
显然,两相调制(单个调制状态对应1个二进制位)的比特率等于波特率;四相调制(单个调制状态对应2个二进制位)的比特率为波特率的两倍;八相调制(单个调制状态对应3个二进制位)的比特率为波特率的三倍;依次类推。
RS232是要用在近距离传输上最大距离为30M
RS485用在长距离传输最大距离1200M

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

串口参数详解:波特率,数据位,停止位,奇偶校验位 的相关文章

  • Ubuntu网络编程——TCP/IP

    常识 xff1a 裸机 xff1a 没有安装操作系统的计算机 如果想在裸机上运行自己所编写的程序 xff0c 就必须用机器语言写程序 桌面操作系统 xff1a windows macOS Linux 服务器操作系统 xff1a Linux
  • RoboMaster电控学习笔记——电机控制(1-CAN)

    Robomaster官方提供了一系列性能强大的直流无刷减速电机及配套电调 xff0c 这里介绍三款步兵上用的电机 amp 电调 M3508电机 amp C620电调 xff0c GM6020电机 xff08 内部集成电调 xff09 xff
  • linux下 在同一个线程建立TCP连接

    要实现在一个线程里建立TCP连接 xff0c 需要注意accept应在connect之后 xff0c 所以我将accept放在了tcp client里 这样 xff0c 才能得到accept返回的fd xff0c 从而进行read span
  • 【cpprestsdk】浅谈cpprestsdk线程池及使用

    cpprestsdk根据include文件夹可以看到共包含两部分内容 xff1a 1 pplx 2 cpprest pplx threadpool h源代码中创建线程池有两种方式 1 通过construct接口创建 xff0c 返回一个un
  • 丹尼带你入坑无人机3 - 四轴配件简介

    知道你的四轴里面每个小东东都是干嘛用的吗 xff1f 麻雀虽小 xff0c 五脏得全 简单说 xff0c 飞控就是大脑 xff0c 它能知道每一时刻无人机的状态 xff0c 并且给下一时刻需要作出的动作发出指令 电调就好比是神经单元 xff
  • Linux内核简单分析(2)——进程调度与切换

    进程的调度与切换是一个很复杂的话题 xff0c 这里我更关心内核是如何实现的 xff0c 而不是使用了什么策略 xff0c 所以只讲进程的组织和切换方式 xff0c 而对调度程序的实现和算法不作分析 进程调度可参考 xff1a Linux进
  • 【矩阵路径】不知道回溯怎么写?进来看模板就对了!

    矩阵路径 不知道回溯怎么写 xff1f 进来看模板就对了 xff01 这几天做了几道回溯算法的题目 xff0c 发现理解递归关键步骤的结果很重要 xff0c 试图摸索出一套模板 xff0c 思考的方法都是搭建好框架 xff0c 然后逐步细想
  • gloox 获取花名册和联系人出席信息

    gloox 之 RosterManager 此类实现了jabber iq roster名空间中的Jabber XMPP花名册操作 它继承了 IqHandler PresenceHandler SubscriptionHandler 和 Pr
  • TCP/IP网络编程笔记--套接字和标准I/O

    一 定义 xff1a 标准I O是标准C库提供的对文件操作的函数接口 二 常见的标准I O函数 xff1a 1 fopen xff08 xff09 函数原型 xff1a FILE fopen xff08 const char path xf
  • C语言位运算符:与、或、异或、取反、左移和右移

    文章转载于 博客园 博主 夜真寒 链接地址 xff1a http www cnblogs com yezhenhan archive 2011 11 06 2238452 html 语言位运算符 xff1a 与 或 异或 取反 左移和右移
  • Linux系统之常用命令

    这几天在看教学视频 xff0c 里面在讲一些linux系统常用的命令 xff0c 虽然有一部分都很熟悉了 xff0c 但也有一些不太熟悉 xff0c 因此来总结一下 注 xff1a 本文并非介绍了linux下所有常用的命令 xff0c 而是
  • C++学习笔记--尽量以const,enum,inline替换#define

    本文内容整理自 Effective C 43 43 中文版 xff0c 主要讲述 C 43 43 中在一些场合使用 const enum inline 来替换 define 所带来的好处 1 const 当我们编写这样一条代码 xff1a
  • ROS分布式通信(可以查看话题但主机接受不到从机传输的消息)

    提示 xff1a 想要将nano上的传感器数据发回pc端从机进行计算 xff0c 但是pc端计算完后发布话题 xff0c nano上的主机可以查看到这个话题但却收不到消息 xff08 已经在主机配置好相应的消息类型 xff09 前言 提示
  • 用户身份认证

    0 背景 计算机本身无法判断坐在显示器前的使用者的身份 xff0c 也无法确认网络的另一端的是谁 为了明确是谁在访问服务器 xff0c 必须让客户端自报家门 通常核对一些登录者本人的信息 xff1a 密码 xff1a 只有本人知道的字符串信
  • 一款用过就舍不得换的播放器-potplayer(中文绿色版)/win64

    PotPlayer 是 KMPlayer 的原制作者姜龙喜先生 xff08 韩国 xff09 进入 Daum 公司后的新一代网络播放器 PotPlayer 的优势在于强大的内置解码器 xff1b 而 KMPlayer 的优势在于强大的定制能
  • (一) odroid-xu4交叉编译过程

    目录 文章目录 目录前言Toolchain安装过程总结 前言 现在转到ODROID xu4的平台 xff0c 需要安装ODROID xu4的交叉编译环境 xff0c 特此记录 xff01 本文参照ODROID Wiki Toolchain安
  • 使用OPENMV控制云台自动追踪Apriltag,测出与Apriltag距离并且通过串口发送给单片机。

    使用openmv控制云台自动跟踪Apriltag xff0c 并且将openmv与Apriltag距离通过串口发送到单片机 如果有openmv的同学直接将main py和pid py复制到flash中就可以了 注意 xff01 Aprilt
  • ubuntu 配置http

    1 去服务器上购买免费https服务并配置域名等 2 根据自己的网站服务器来选择下载不同的ssl证书 apache证书包括 1 root bundle crt 证书文件 2 xxx xxx xxx crt 证书文件 3 xxx xxx xx
  • C++中istringstream、ostringstream、stringstream详细介绍和使用

    C 43 43 中istringstream ostringstream stringstream介绍和使用 1 基于控制台的I O 注意 xff1a 提取符 34 gt gt 从流中提取数据时跳过输入流中的空格 tab键 换行符等空白字符
  • java httpClient Digest Auth 认证

    技术交流QQ群 933925017 java httpClient Digest Auth 认证 因为项目需要 请求海康摄像头 进行抓图以及云台控制等功能 海康有http协议 但是需要进行请求头认证 因为海康给的资料已经过时 所以找了很久

随机推荐

  • 锂电池充电过程及电路设计

    通常为了提高电池充电时的可靠性和稳定性 xff0c 我们会用电源管理芯片来控制电池充电的电压与电流 xff0c 但是在使用电源管理芯片设计充电电路时 xff0c 我们往往对充电电路每个时间段的工作状态及电路设计注意事项存在一些困惑 1 电池
  • 0Ω电阻到底能过多大电流

    0 电阻到底能过多大电流 xff1f 这个问题想必每位硬件工程师都查过 而与之相关的还有一个问题 xff0c 那就是0 电阻的阻值到底有多大 xff1f 这两个问题本来是很简单的 xff0c 答案应该也是很明确的 xff0c 但网上网友却给
  • linux进程控制函数--fork,exec,exit,wait,sleep

    1 fork 在linux系统中 xff0c 用户创建进程的唯一方法就是使用系统调用fork xff0c 大概要进行下面的操作 lt 1 gt 分配表项 xff0c 一个用户的进程项是有限的 xff1b lt 2 gt 创建子进程的进程标识
  • linux的用户模式和内核模式

    MS DOS等操作系统在单一的CPU模式下运行 xff0c 但是一些类Unix的操作系统则使用了双模式 xff0c 可以有效地实现时间共享 在Linux机器上 xff0c CPU要么处于受信任的内核模式 xff0c 要么处于受限制的用户模式
  • 阿里内推面试经历

    写在最前 其实主观上并不是很想写 xff0c 但坚持写完是希望能分享给准备进互联网实习或工作的同学或朋友一些经验和收获
  • 关于利用Openmp中使用的时间函数

    Openmp是一项并行化技术 xff0c 是可以提高串行化程序的运行效率的 xff0c 但需要使用正确的时间函数来进行衡量 首先 xff0c 先提出一个unix linux下的内核时间获取函数和一个omp h的一个库函数 1 clock 函
  • mybatis之映射文件

    mybatis框架如何实现java语句与数据库语句的分离 映射文件 通过在映射文件中写入动态sql语句 xff0c 完成增删改查操作 映射文件中的元素都包含在根节点 lt mapper gt lt mapper gt 下 xff0c map
  • mybatis之高级查询

    Mybatis中的高级查询主要通过关联查询 xff0c 集合查询或鉴别器来完成 其核心就是之前提到的通过resultMap标记来完成 1 关联查询 关联查询一般有三种方式 xff1a a 联合查询 利用resultMap的map xml中的
  • mybaits之动态sql

    mybaits除了提供连接数据库 xff0c 使java和数据库语句分离之外 xff0c 还有一个显著的特点就是使用动态sql语句 这些sql语句均写在map映射文件中 xff0c 并通过一系列标记来完成 1 if标记 常用形式 xff1a
  • 平衡二叉树-的四种旋转调整(代码,图解)

    平衡二叉树 的四种旋转调整 xff08 代码 xff0c 图解 xff09 1 右单旋 xff1a 新插入节点插入在较高左子树的左侧 xff08 左左右 xff09 xff0c 插入新节点二十 xff1a 1 修改parent和curLR的
  • 头文件里一般会加入的宏定义,为了避免一个头文件被重复调用

    华清视频里讲的 xff0c 写代码的时候 xff0c 头文件一般地都会加上一个类似这样的宏 xff0c 希望你从此以后再写头文件 xff0c 加上一个宏 加了这个有一个好处 xff0c 当你第一次包含tree h的时候 xff0c 如果没定
  • 自己组装Pixhawk F450无人机的一些细节

    首先参考文档为 xff1a 1 https mp weixin qq com s VXKU kIB v i0AX3zgtLig 2 https mp weixin qq com s Qzzl dQ6Tz2pXNp7Oj0lTg 3 http
  • 电机和桨叶要搭配选择

    拍自 四旋翼无人机的制作与飞行
  • 接收机PPM与SBUS

    最开始是自己弄ACfly的飞控时发现插接收机有两个位置 xff0c 一个PPM一个SBUS xff0c 我想直接移植Pixhawk的接收机或者无名的接收机到ACfly模块上 我最后发现Pixhawk和无名的也是留了两个给接收机 xff08
  • 现在发现如果无人机的电机不同,浆可能是不能混用的。

    现在发现如果无人机的电机不同 xff0c 浆可能是不能混用的 孔位不同 xff0c 我之前在无名那里买了很多浆 xff0c 觉得这次F330的浆没了可以用那个替 xff0c 我刚刚试了下发现插不进去 xff0c 不能通用 包括我刚才在店家那
  • 无人机电池似乎可以并联,串联组合

    之前总是见到这种奇怪的线 xff0c 一直不知道作什么用 xff0c 现在大概清楚了 是不是这样可以实现更长时间的续航 xff0c 我之前再ACfly的群里看到一个人的六轴是上面放了两个电池的 xff0c 他这可能也是并联的
  • 任务的三要素是任务主体函数,任务栈和任务控制块

    任务的三要素是任务主体函数 xff0c 任务栈和任务控制块 由xTaskCreateStatic 函数来把三者联合起立 下面拍自野火的 FreeRTOS内核实现与应用开发实战指南
  • 如何用Realsense D435i运行VINS-Mono等VIO算法 获取IMU同步数据

    摘自 xff1a https blog csdn net qq 41839222 article details 86552367 如何用Realsense D435i运行VINS Mono等VIO算法 获取IMU同步数据 Manii 20
  • Opencv安装与环境配置

    转载自 xff1a https blog csdn net sm16111 article details 81238324 Opencv安装与环境配置 代码敌敌畏 2018 07 27 15 46 24 50411 收藏 94 分类专栏
  • 串口参数详解:波特率,数据位,停止位,奇偶校验位

    转载自 xff1a https blog csdn net sinat 35705952 article details 89034455 串口参数详解 xff1a 波特率 xff0c 数据位 xff0c 停止位 xff0c 奇偶校验位 W