设为首页 加入收藏

TOP

13.5.2 配置串口(1)
2013-10-07 14:36:33 来源: 作者: 【 】 浏览:55
Tags:13.5.2 配置 串口

13.5.2  配置串口(1)

在打开通信设备句柄后,常常需要对串口进行一些初始化配置工作。配置串口的一些属性,如串口通信参数、通信超时设置、缓冲区申请及缓冲区清空操作等。

(1)设置串口参数。设置串口参数需要通过一个DCB结构来进行。DCB结构包含了诸如波特率、数据位数、奇偶校验和停止位数等信息。在查询或配置串口的属性时,都要通过一个DCB结构的缓冲区。

一般用CreateFile打开串口后,可以调用GetCommState()函数来获取串口的初始配置。要修改串口的配置,应该先修改DCB结构,然后再调用SetCommState()函数设置串口。DCB结构包含了串口的各项参数设置,下面介绍该结构5个常用的成员变量。

BaudRate:波特率,DWORD型变量,指定通信设备的传输速率。这个成员可以是实际波特率值或者是表13.2中的常量值之一。

fParity:指定奇偶校验使能,DWORD型变量。若此成员为1,允许奇偶校验检查。

ByteSize:通信字节位数,4—8,BYTE型变量。

Parity:指定奇偶校验方法,BYTE型变量。此成员的取值如表13.3所示。

StopBits:指定停止位的位数,BYTE型变量。此成员取值如表13.4所示。

表13.2  波特率常见常量

< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

winbase.h中的定义

说    明

CBR_110

#define CBR_110  110

波特率为110

CBR_300

#define CBR_300  300

波特率为300

CBR_600

#define CBR_600  600

波特率为600

CBR_1200

#define CBR_1200  1200

波特率为1200

CBR_2400

#define CBR_2400  2400

波特率为2400

CBR_4800

#define CBR_4800  4800

波特率为4800

CBR_9600

#define CBR_9600  9600

波特率为9600

CBR_14400

#define CBR_14400  14400

波特率为14400

CBR_19200

#define CBR_19200  19200

波特率为19200

CBR_38400

#define CBR_38400  38400

波特率为38400

CBR_56000

#define CBR_56000  56000

波特率为56000

CBR_57600

#define CBR_57600  57600

波特率为57600

CBR_115200

#define CBR_115200 115200

波特率为115200

CBR_128000

#define CBR_128000 128000

波特率为128000

CBR_256000

#define CBR_25600256000

波特率为256000

表13.3  奇偶校验常见常量

winbase.h中的定义

说    明

NOPARITY

#define  NOPARITY  0

采用无校验方式

ODDPARITY

#define  ODDPARITY  1

采用奇校验方式

EVENPARITY

#define  EVENPARITY  2

采用偶校验方式

MARKPARITY

#define  MARKPARITY  3

采用标记校验方式

表13.4  停止位常见常量

winbase.h中的定义

说    明

ONESTOPBIT

#define ONESTOPBIT  0

1位停止位

ONE5STOPBITS

#define ONE5STOPBITS  1

1.5位停止位

TWOSTOPBITS

#define TWOSTOPBITS  2

2位停止位

通过GetCommState()函数可以获得COM口的设备控制块,从而获得DCB中相关的参数。函数原型如下:

  1. BOOL GetCommState(  
  2.                     HANDLE hFile,   //标识通信端口的句柄  
  3.                     LPDCB lpDCB     //指向一个设备控制块(DCB结构)的指针  
  4.                     ); 

而通过SetCommState()函数则可以设置COM口的设备控制块,函数原型如下:
  1. BOOL SetCommState(  
  2.                     HANDLE hFile,  
  3.                     LPDCB lpDCB  
  4.                     ); 

函数参数同GetCommState()。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇13.5.2 配置串口(2) 下一篇13.4.2 串口通信简介

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: