串口通信与波特率

2023-05-16

原文出自微信公众号【小小的电子之路】

串口是串行接口的简称,串行接口是采用串行通信方式的接口。串行通信是一种将需要传输的数据由低位到高位一位一位地在一条传输线上逐个传输的通信方式。

一、串行通信的数据格式

首先来了解一下串行通信的数据格式,如下图所示,串行通信的一帧数据由起始位、数据位、校验位以及停止位组成。

起始位:低电平,标志着一帧数据的开始;

数据位:数据内容,可选择为5、6、7、8位;

校验位:用于确保传输数据的正确性,可分为奇校验和偶校验。奇校验时数据位和校验位中1的总数应为奇数,同理,偶校验时数据位和校验位中1的总数应为偶数;

停止位:高电平,标志着一帧数据的结束。

二、异步串行通信的波特率

串行通信可以分为两种形式:同步串行通信和异步串行通信。

同步串行通信:通信双方在同一时钟控制下同步传输数据;

异步串行通信:通信双方使用各自的时钟控制数据传输。

对于异步串行通信来说,虽然没有同步时钟,但是通信双方必须约定并遵循同样的设置,这就需要异步串行通信中一个重要的参数来设置,该参数即波特率。

波特率即串口通信的速率,它表示每秒传输二进制数据的位数,单位是bps,即位/秒,常用的波特率有9600、19200、38400、57600和115200等。

以115200的波特率为例,即一秒传输115200个二进制数据位,那么每一位的持续时间

因此,在通信双方约定波特率为115200的情况下,只要发送方发送的每位比特位的持续时间为8.68us,那么正常情况下接收方就能准确无误地解析数据。

三、实验测试

接下来利用实验来简单验证一下上述分析:波特率为115200,一位停止位,八位数据位,无奇偶校验位,发送数据为10110101,每组发送间隔100us。

1、仿真测试

仿真测试结果如下图所示,可以看出,发送的二进制数据依次为0101011011,每个比特位持续时间为8680ns,数据发送间隔为117360-2×8680=100000ns,均符合设计要求。

2、输出波形测试

下载程序,测试对应引脚的输出波形,如下图所示,可以看出与仿真结果基本相符。

3、通信测试

通过上位机的串口调试助手接收发送的数据,通过下图所示的结果可以看出,接收到的数据为0xB5,对应的二进制数据为0b10110101,与发送端发送数据相符,通信成功。

 以上就是本次分享的全部内容,谢谢大家!

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

串口通信与波特率 的相关文章

随机推荐

  • 错误:ERROR in ./node_modules/_webpack-dev-server...Module not found: Error: Can't resolve 'webpack/hot

    学习webpack的途中总是困难重重 使用webpack dev server工具时 xff0c 运行cnpm run dev后报错 xff1a ERROR in node modules webpack dev server 64 2 1
  • 带参数的宏定义与有参函数的区别

    1 先介绍一下什么是宏定义 宏定义属于C语言编译系统中编译预处理中的一部分 xff08 但编译预处理不是C语言的语句 xff09 xff0c 其作用是为编译系统提供必要的前置信息 xff0c 告诉编译系统在源程序进行编译之前应该做些什么 它
  • UART接口控制器-RS-232的9脚接口

    RS 232常见引脚信号的定义 RXD 接收数据 xff0c TXD 发送数据 xff0c DTR 数据终端准备 xff0c GND 信号地 xff0c DSR 数据设备准备好 xff0c RTS 请求发送 xff0c CTS 清除发送 串
  • 去掉字符串最后一个字符的方法

    C 开发过程中一般都需要进行字符串的格式化处理 xff0c xff0c 以下提供去掉字符串最后一个字符的方法 如果是其他语言开发的话仅供参考有可能写法不一样 xff0c 但是意思是一样的 字符串 xff1a string s 61 34 1
  • C++11之lambda函数

    最近一直在看mesos的源代码 xff0c mesos中用到了很多C 43 43 11的新特性 xff0c lambda函数就是其中的一个 对于lambda函数简单的来说就是java中的匿名函数 语法定义 capture paramente
  • C++中两个类互相包含

    今天突然想起一个C 43 43 的问题 xff0c 如果一个类A包含类B的实例 xff0c 而实例B也包含另一个类A xff0c 这种方式的代码应该怎么写 xff0c 按照一般的开发者的想法的代码如下 xff1a 文件A h span cl
  • 命名空间

    命名空间的作用 命名空间是为了防止名字冲突提供更加可控的机制 命名空间分割了全局命名空间 xff0c 其中每一个命名空间是一个作用域 命名空间的定义 命名空间由三部分组成 xff0c 分别是namespace 空间名字和一系列由花括号括起来
  • STL中的swap函数

    swap函数执行会调用容器内数据类型的 xff0c 拷贝构造和赋值函数调用 对自定义类型使用STL algorithm中的swap函数 xff0c 会调用自定义的类型的拷贝构造函数一次 赋值函数两次 xff1b 自定义类型中没有定义那么就会
  • C++11之POD类型

    什么是POD类型 POD的全称叫做Plain Old Data xff0c 简单讲就是一个类或者一个结构体通过二进制拷贝之后还能保持其不变 xff0c 那么这个类型就是POD类型 什么类型属于POD类型 当一个类型具有平凡的定义和标准布局这
  • C++11之初始化成员变量

    C 43 43 98中的成员变量初始化 在声明类的时候 xff0c 对于静态类型并且是常量类型 xff0c 同时是枚举或者是整型的变量可以使用 61 在声明时初始化 对于不符合上述要求的静态变量可以在类外使用 61 进行初始化对于非静态类型
  • C++11之左值、纯右值和将亡值

    在C 43 43 11中所有的值一定属于左值 纯右值和将亡值三种值之一 xff0c 分别介绍一下这三种类型 左值与右值 在C 43 43 中定义左值与右值的比较标准的方法是根据其可以取地址来判断 左值就是可以对变量进行取地址或者有名字的变量
  • Skip List

    Skip List 是什么 我们常用数组和链表来组织数据 xff0c 对于已排序的数据 xff0c 数组的查询时间复杂度可以是 lgn 二分查找 xff0c 插入和删除都是 n 链表提供了一种更加灵活的组织方式 xff0c 插入和删除的时间
  • 程序员的自我修养--可执行文件的装载与进程

    进程的虚拟地址空间 C语言指针大小的位数与虚拟地址空间的地址位数相同 xff0c 即32位平台下进程的虚拟地址空间为4G由于程序在运行是处于操作系统的监管下 xff0c 进程的虚拟地址空间都在操作系统的掌握中 xff0c 只能使用操作系统分
  • C++11之继承构造函数

    问题场景 类的继承中 xff0c 如果子类想使用父类的构造函数 xff0c 则需要在子类的构造函数中声明使用父类的构造函数 xff0c 例子如下 xff1a span class hljs keyword struct span A A s
  • E95-DTU(4G01-485)数传电台的特点及其应用详解

    1 E95 DTU 4G01 485简介 E95 DTU 4G01 485 是采用 4G CAT1 方案的云数传电台 xff0c 电台支持微信小程序简单配对使用 可以显现一对一 一对多 多对多等复杂应用场景 由于采用了云技术 xff0c 数
  • STM32学习笔记(串口、IAP)

    串口 xff1a 一 USART ITConfig USART1 USART IT TXE ENABLE xff1a 只要发送寄存器为空 xff0c 就会一直有中断 xff0c 因此 xff0c 要是不发送数据时 xff0c 把发送中断关闭
  • C++中容器的优点和缺点

    顺序容器 连续存储 array 优点 随机访问 一步直接得到数据的首地址的访问方式 方便 开销低 速度快 缺点 容量在定义时就确定了 不能够改变 中间删除和插入比较麻烦 需要后面的元素都移动 vector 优点 随机访问方便 可以自动扩容
  • 硬件切换485电路

    485接口具有很好的抗噪音抗干扰 长距离传输和多站能力特性 xff0c 使其为工控行业首选串行接口 485规定的电气特性为2线 xff0c 半双工多点通信 它的电气特性是有线缆两端的电压差来决定的 由于半双工模式 xff0c 通讯时需要切换
  • 802.11 Authentication and Association

    The 802 11 standard provides a method for supplying different levels of access to different nodes in a wireless local ar
  • 串口通信与波特率

    原文出自微信公众号 小小的电子之路 串口是串行接口的简称 xff0c 串行接口是采用串行通信方式的接口 串行通信是一种将需要传输的数据由低位到高位一位一位地在一条传输线上逐个传输的通信方式 一 串行通信的数据格式 首先来了解一下串行通信的数