文章来源:https://blog.csdn.net/petershina/article/details/8612357

针对串口通信,关于设置数据位长度对通信的影响,如图:

在串口数据通信中,会看到串口参数设置。其中“数据位”设置,共有四档选项,分别是8、7、6、5。那么改变这个参数会对数据的传输有什么影响呢?

我来做个试验,通过示波器观察通信过程,能够分析结果如下:

例如数据位设置为5。那么就相当于规定了每个传输字节只能由5个二进制位来表示,例如:11111,10110,01110等。也就是说,这个RS232口只能发送00000~11111这个范围内的数,如果发送一个比11111还大的数,例如11111+1,也就是100000,那么经过这个RS232口的处理以后,只会发送出去一个00000,而接收端只能接收到00000。这样看起来貌似发送的数据和接收的不一样,其实这是串口数据位长度决定了他会发送多少位数据,超出的位是不会被发送的。

通过示波器观察,我们就能清楚的看到,如果设备是正常的情况下,且串口发送端和接收端都设置数据位为5位,发送下面这些十六进制数,会显示出如下波形:

分别在串口调试软件的发送窗口输入上面的这四个十六进制数,就能通过示波器看到这些数字所对应的二进制码波形。数据位设置是5位,要从右往左查看波形,因为串口通信是先传输低位,后传输高位,所以要反过来读取二进制位。

通过上面的观察,我们可以确定,如果数据位设置是5位,那么我们可以发送的最大数字是0x1F,也就是二进制数11111B。超过0x1F的数就保留低五位,所构成的二进制数,就是能够被接收到的数;如果我们设置数据位是6位,那么我们可以发送的最大数字就是0x3F。超过0x3F的数就就保留低六位,所构成的二进制数,就是能够被接收到的数据。

另外,我们知道,一个ASCII码必须要用8位二进制数来表示,其中低7位表示字符,同时还要注意,在标准ASCII中,最高位(b7)用作奇偶校验位。这也就意味着如果串口传输的数据位设置是5或者6位,那么这种情况下,串口是无法发送出ASCII码表中数值大于11111B(十进制31)或者111111B(十进制63)的数所表示ASCII字符的。

比如我们设置串口数据位是5位,我们发送一个字母a,我们知道在字母a在ASCII码中的十进制数是97,二进制是1100001B,大于11111B。则此时只能传输出去后五位,也就是00001B,而接收端只会显示出十六进制数01,而不能显示出一个完整的字母a。只有数据为设置是7位和7位以上时,才能传输一个完整的ASCII字符。

串口---串口通信数据位长度对传输数据的影响相关推荐

  1. 串口通信数据位长度对传输数据的影响

    http://blog.csdn.net/petershina/article/details/8612357 针对串口通信,关于设置数据位长度对通信的影响,如图: 在串口数据通信中,会看到串口参数设 ...

  2. io口模拟串口 1602显示数据位内容[转]

    一个项目的一部分内容,让初学者模拟着做一下,还是很有用处的. 这样的程序可以实现一个51单片机有两个串口 #include<regx52.h> sbit BT_SND =P1^1; sbi ...

  3. C语言串口编程收发数据 并实现AT指令的收发 可变参数控制串口属性 树莓派4G模块

    文章目录 一. Linux下串口编程的流程 1.打开串口 2. 串口初始化 2.1 常用函数总览 2.2 初始化 3. 串口的读写 4. 串口关闭 二.代码--串口编程实现自发自收 三.可变参数控制串 ...

  4. #串口通信接收数据位和数据对齐的BUG

    前言 最近好像和BUG杠上了,一直在忙着找bug,上个礼拜修了一个礼拜的电路板,前天又开始找程序的BUG,直到今天才结束.在本次找程序BUG中自己学会了数据对齐和串口通信注意的地方.本次主要记录找BU ...

  5. javarxtx串口接收时数据会分成好几段_【STM32】串口通信基本原理(超基础、详细版)...

    STM32F1xx官方资料: <STM32中文参考手册V10>-第25章通用同步异步收发器(USART) 通信接口背景知识 设备之间通信的方式 一般情况下,设备之间的通信方式可以分成并行通 ...

  6. vb串口 任意波特率_学习串口参数详解:波特率,数据位,停止位,奇偶校验位...

    串口常用参数,串口是一种非常通用的设备通信的协议(不要与通用串行总线Universal Serial Bus(USB)混淆). 中文名:串口常用参数 属    性:通用设备通信的协议 相    关:通 ...

  7. QT入门第十四天 串口通信协议+收发数据+波特率+数据位+停止位+奇偶校验+串口识别射频RFID的卡号

    QT入门第十四天 串口通信[QT入门第十四天 串口通信协议+收发数据+波特率+数据位+停止位+奇偶校验+串口识别射频RFID的卡号 第一章 常见的硬件通信接口协议 [1]硬件通信接口协议 [2]使用串 ...

  8. java 偶校验_串口起始位、数据位、奇偶校验位、停止位、波特率与时间等问题的解读...

    转自:https://blog.csdn.net/gq1900/article/details/51885259 UART简介 通用异步收发传输器(Universal Asynchronous Rec ...

  9. (RS485 232串口通信数据解析实用干货(1)

    文章目录 (RS485 232串口通信数据解析实用干货(1) 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 ...

最新文章

  1. 面试官: Redis 与 MySQL 双写一致性如何保证?
  2. Silverlight设计时特性的使用
  3. 【9.22校内测试】【可持久化并查集(主席树实现)】【DP】【点双联通分量/割点】...
  4. 8086汇编学习笔记9-中断
  5. AtCoder AGC043C Giant Graph (图论、SG函数、FWT)
  6. Java 并发编程—有锁互斥机制及AQS理论
  7. 推荐系统相关算法(1):SVD
  8. 传感器信号处理仿真实验(c语言实现),均值滤波,滑动滤波
  9. h5 fieldset
  10. 填坑总结:python内存泄漏排查小技巧
  11. php商品评价代码,php商品对比功能代码分享
  12. html怎么给表格加a链接地址,html基础02-图片标签、绝/相对地址、表格的属性、链接的属性及链接的分类、name定义锚点的名称、编码...
  13. window xp系统安装php环境_在Windows XP下安装Apache+MySQL+PHP环境
  14. Linux的相关资源帖
  15. Matlab中MOSEK优化包的配置及使用
  16. iwconfig工具源码
  17. java实战我爱自学网,白银java教程我要自学网
  18. HASH 、MD、SHA、MAC、HMAC、SM3
  19. 如何使用PDF Expert将文本添加到PDF?
  20. 多层感知器(Muti-Layer Perception ,MLP)

热门文章

  1. Docker 退出容器不停止容器运行
  2. 运筹系列56:python空间分析库pysal.spaghtti
  3. matlab计算历史波动率,已实现波动率计算
  4. android8.1谷歌相机,谷歌相机8.1成功被移植,适用于大多数非Pixel安卓手机
  5. 日语笔记(3) 动词て形
  6. 原生JS实现无限滚动瀑布流布局
  7. 从科幻阅读到科幻写作,中国首位科幻博士一文讲清楚|附全年龄段书单
  8. java 判断是否手机浏览器_js 判断是否是 手机端的浏览器
  9. Java需求出发:tk mybatis example
  10. 项目:招聘网站信息(获取数据+数据分析+数据可视化)