http://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. 串口---串口通信数据位长度对传输数据的影响

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

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

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

  3. 安卓与串口通信-数据分包的处理

    前言 本文是安卓串口通信的第 5 篇文章.本来这篇文章不在计划内,但是最近在项目中遇到了这个问题,正好借此机会写一篇文章,在加深自己理解的同时也让大伙对串口通信时接收数据可能会出现分包的情况有所了解. ...

  4. C#串口通信数据不完整

    下面代码是我使用C#开发串口通信写的代码,在实现串口通信过程中,在数据接收线程中, 未加这条语句Thread.Sleep(50);我使用串口工具调试 ,串口通信正常,但是在与实际单片机通信过程中,出现 ...

  5. stm32 串口通信数据移位寄存器_STM32串口接RS485丢码问题已解决*_*

    static void Rs4851Send(unsigned char *p,unsigned char length) { ///TIM_SetCounter(TIM(RS4851_TIM_NO) ...

  6. labview接收串口通信数据不正常的解决办法

    在昨天我写了采用挨个数发送的方法获得了正常的上位机数据. 但是在上位机中,数据显示并不正常. 如:1234会依次显示1234:1:2:3:4: 我的解决办法是:在接收到的数据之后加一个选择结构,如果接 ...

  7. 在C#中使用SerialPort类实现串口通信

    在.NET Framework 2.0中提供了SerialPort类,该类主要实现串口数据通信等.本文章将本人在学习过程中从网络上搜集到的相关信息写出来供大家参考. 下面主要介绍该类的主要属性(表1) ...

  8. NXP(I.MX6uLL) UART串口通信原理————这个未复习

    参考:Linux NXP (I.MX6uLL) UART串口通信原理 作者:一只青木呀 发布时间: 2020-09-20 16:48:33 网址:https://blog.csdn.net/weixi ...

  9. 【嵌入式系统】STM32串口通信的四种方法(基于RTOS)

    目录 1.串行通信的基本参数 2.轮询方式代码效果 3.中断方式代码效果 4.中断加上时间戳方式代码及效果 5.DMA空闲中断方式接收数据 1.串行通信的基本参数 串行端口的通信方式是将字节拆分成一个 ...

最新文章

  1. 在CentOS 7.7 x86_64上安装InfluxDB 1.8.0实录
  2. 移动端高清、多屏适配方案
  3. php的mpdf开发实例,mpdf自动分页加页码的方法
  4. 诺曼门的十个产品_用户决策与产品设计
  5. mysql concat 日期_mysql group_concat时间用法
  6. 毕业十年|我的嵌入式AI学习路线(笔记、代码)
  7. 你知道用git打补丁吗?
  8. 神仙在双11晚上,都干了些啥?
  9. JavaScript验证字符串只能包含数字或者英文字符的代码实例
  10. Windows下安装和配置Maven的方法及注意事项
  11. mysql完整性约束命名_第5章--MySQL索引与完整性约束.ppt
  12. 我的IBM本本逃过一劫...
  13. 德国Vue.js2终极开发教程024--32
  14. PMP第六版5大过程组49个过程
  15. 英语翻译软件测试简历,如此翻译-2 - Victor's Testing Career - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  16. 这几天的QC培训想到的
  17. fluidsim元件库下载_模块七FluidSIM软件应用 (1)
  18. RFC 822 中文版 MIME解析基础(4)(第5-6也)
  19. 各行业分析研究报告 入口汇总
  20. An internal routine has requested a dump of selected redo.This usually happens following a specific

热门文章

  1. 知名大学通报涉嫌造假论文调查结果
  2. React 基础案例 | 支持左右按钮点击查看信息的卡片组件(二)
  3. HTML入门二(列表,表格与表单)
  4. linux基础测试题
  5. 计算机能力怎么填制作ppt,PPT制作108式 篇一:如何制作好看的PPT?掌握这些小技巧,快速制作专业PPT!...
  6. STM32F103C8T6 ADC输入电流电压特性
  7. 游戏建模必备技巧一人物模型贴图布线!(99%小白收藏)
  8. 求网络号,广播地址,第一个可用ip,最后一个可用ip。可用ip总数
  9. 零序电流 Zero-sequence curren Residual Current Circuit Breaker
  10. 飞利浦SHL3565耳机套耳罩更换