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

在串口数据通信中,会看到串口参数设置。其中“数据位”设置,共有四档选项,分别是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字符。
Delphi 串口通信数据位长度对传输数据的影响 转的更多相关文章
- STM32 ------ 串口 数据位长度 和 奇偶校验位
USART_InitStructure.USART_WordLength 的值是数据位长度+一个奇偶校验位(如果无奇偶校验则不加一)
- Delphi 串口通信(1)
利用 Delphi实现串口通信的常用的方法有 3种: 一是利用控件,如 MSCOMM控件和 SPCOMM控件: 二是使用 API函数: 三是调用其他串口通信程序.其中利用 API编写串口通信程序较为复 ...
- QT 串口通信 数据16进制发送
在QT中进行串口通信时,很多情况要用到发送16进制的数据.从网上找来了一段代码测试能用: static QByteArray QString2Hex(QString str) { QByteArray ...
- 【Delphi】基于状态机的串口通信
通信协议 串行通信接口(如RS232.RS485等)作为计算机与单片机交互数据的主要接口,广泛用于各类仪器仪表.工业监测及自动控制领域中. 通信协议是需要通信的双方所达成的一种约定,它对包括数据格式. ...
- C#中的串口通信
关于串行接口 串行接口(Serial port)又称“串口”,主要用于串行式逐位数据传输.常见的有一般电脑应用的RS-232(使用 25 针或 9 针连接器)和工业电脑应用的半双工RS-485与全双工 ...
- VS编程,C#串口通讯,通过串口读取数据的一种方法
一.可能需要的软件:1.虚拟串口vspd(Virtual Serial Port Driver,用来在电脑上虚拟出一对串口,模拟通讯. 2.友善串口调试助手,用来发送.读取数据. 二.思路1.查询本机 ...
- STM32学习笔记:【004】USART串口通信
版本:STM32F429 Hal库v1.10 串口通信能够实现两块电路之间不同的通信,在开发中作为打印调试也是一门利器(printf重定向). 补充一点小知识: 1. weak修饰符修饰的函数,说明这 ...
- STM32 串口通信使用奇偶校验
STM32串口通信如果使用奇偶校验,需要设置数据位长度为9bit USART_InitStructure.USART_BaudRate = 9600; USART_InitStructure.USAR ...
- C# 编程实现串口通信
http://blog.sina.com.cn/s/blog_6c67dab30101p3vn.html ----------------------------------------------- ...
随机推荐
- WordPress主题制作教程1:文件构成
在最简单的情况下,一个WordPress主题由两个文件构成: index.php ------------------主模版 style.css -------------------主样式表 以下 ...
- LightOj 1245 --- Harmonic Number (II)找规律
题目链接:http://lightoj.com/volume_showproblem.php?problem=1245 题意就是求 n/i (1<=i<=n) 的取整的和这就是到找规律的题 ...
- iOS 苹果真机鉴定
iPhone 4S(GSM) 16GB 黑色序列号:DX4KN69EDTC0设备名称:iPhone 4S容 量:16GB颜 色:黑色类 型:iPhone4,1代 号:n94ap型 号:MD235激活状 ...
- WAS集群服务的关闭与启动
WAS集群服务的关闭与启动 欢迎转载,转载时请务必注明出处(http://blog.csdn.net/huangyanlong),否则作者保留追究版权法律责任. 表述有错误之处,请您留言或邮件(hyl ...
- CentOS中通过stat查看文件的元数据
CentOS中可以通过stat查看文件的元数据 [baby@xiaoxiao abc]$ stat honey File: `honey' Size: 25 Blocks: 8 ...
- 机器学习 —— 概率图模型(Homework: Structure Learning)
概率图的学习真的要接近尾声了啊,了解的越多越发感受到它的强大.这周的作业本质上是data mining.从数据中学习PGM的结构和参数,完全使用数据驱动 —— No structure, No par ...
- usb协议分析-设备描述符配置包-描述符
/* usb协议分析仅供大家参考---设备描述符配置包,设备描述符, 地址设置, 配置描述符, 字符串描述符 */ /* -1- usb设备描述符配置包 */ typedef struct _USB_ ...
- make clean、make mrproer、make distclean
make clean.make mrproer 以及make distclean的区别 解压内核源码包后, 到内核源代码目录树的顶层目录, 执行# make helpCleaning targets: ...
- BZOJ 1018 堵塞的交通traffic(线段树)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1018 题意:一个2*n的格子,相邻格子之间有一条道路.初始时道路是不通的. 三种操作:( ...
- HTTP 请求方式: GET和POST的比较
GET和POST是HTTP的两个常用方法. 什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议 ...