下载此文档

基于WIN32API的串口调试助手.doc


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
基于WIN32 API的串口通讯软件的设计收藏
串口调试助手源代码:http://download./user/kissyfish

1、串口的应用

随着计算机技术的发展及工业自动化水平的提高,在许多场合采用单机控制已不能满足现场要求,因而必须采用多机控制的形式。串行通信作为计算机之间常用的通信方法之一,由于其通信编程灵活、硬件简洁并遵循统一的标准,而在工业控制领域得到了广泛的应用。

2、串口的属性



波特率即数据传送速率,表示每秒钟传送二进制代码的位数,他的单位是bit/s。波特率对于CPU与外界的通信是很重要的。通讯过程中,必须保证上位机和下位机的波特率一致。如果不一致的话,就有可能出现乱码甚至出现丢包。这个就好如一个蓄水池的进水管道和出水管道,如果进水管道流入水的速度太快而出水管道的出水太慢,这样时间长了水就会溢出,反映在串口通讯上就是丢包。



在异步通信中,数据是一帧一帧(包括一个字符或一个字节数据)传送的,每一帧数据的格式如下表所示。

起始位

数据位

奇偶校验位

停止位

0

5-8位

可省

1

在帧格式中,一个字符由四个部分组成:起始位、数据位、奇偶校验位和停止位。首先是一个起始位(0),然后是5-8位数据(规定低位在前,高位在后),接下来是奇偶校验位(可省略),最后是停止位(1)。

起始位(0)信号只占用一位,用来通知设备一个待接收的数据准备到达。线路上在不传送字符时应保持为1。接收端不断检测线路的状态,若连续为以后又测得一个0,就知道后来一个新字符,应该马上接收。字符的起始位还被用作同步接收端的时钟,以保证以后的接收能正确进行。奇偶校验位只占一位,但在字符中也可以规定不用奇偶校验位,这一位可以省去。也可以用这一位来确定这一帧中的字符所代表信息的性质(地址数据等)。停止位用来表示数据的结束,它一定四高电位(1)。停止位可以是1位、。接收端收到停止位后,知道上一字符已传送完毕,同时为准备接收下字符作好准备。只要接收到0,就是新的字符的起始位。若停止位以后不是紧接着传送下一个字符,则使电路电平保持高电平(1)。存在空闲位,正是异步通信的特征之一。



要想保证通讯成功,通讯双方必须有一系列的约定。作为发送方,必须知道应该什么时候发送,发什么,对方是否接收到,收到的内容有没有错,要不要重发,怎样通知对方结束等等;作为接收方,必须知道对方是否发送了信息,发的是什么,收到的信息有没有错,如果有错,怎样通知对方重发。

这种约定就叫做通信规程或协议,它必须在编程之前确定下来。然后双方必须严格按照预先规定的协议,进行通讯。

比如通讯的起始头、地址位、数据长度、数据段、数据校验位、结束尾等。数据校验算法有CRC算法、异或算法。代码如下:

1./*

3.*/
:: strHexToInt(BYTE byRecv, int& nData)
5.{
6. nData = 0;
7.
8. if(byRecv>=48 && byRecv<=57)
9. {

基于WIN32API的串口调试助手 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xunlai783
  • 文件大小22 KB
  • 时间2018-06-25