WEB开发网
开发学院软件开发VC Win32串口编程 阅读

Win32串口编程

 2007-03-17 22:00:53 来源:WEB开发网   
核心提示: 一般用CreateFile打开串口后,可以调用GetCommState函数来获取串口的初始配置,Win32串口编程(3),要修改串口的配置,应该先修改DCB结构,需要考虑超时问题,超时的作用是在指定的时间内没有读入或发送指定数量的字符,然后再调用SetCommState函数设置串口,DCB

一般用CreateFile打开串口后,可以调用GetCommState函数来获取串口的初始配置。要修改串口的配置,应该先修改DCB结构,然后再调用SetCommState函数设置串口。

DCB结构包含了串口的各项参数设置,下面仅介绍几个该结构常用的变量:

typedef struct _DCB{
  ………
  //波特率,指定通信设备的传输速率。这个成员可以是实际波特率值或者下面的常量值之一:
  DWORD BaudRate;
CBR_110,CBR_300,CBR_600,CBR_1200,CBR_2400,CBR_4800,CBR_9600,CBR_19200, CBR_38400,
CBR_56000, CBR_57600, CBR_115200, CBR_128000, CBR_256000, CBR_14400
DWORD fParity; // 指定奇偶校验使能。若此成员为1,允许奇偶校验检查
  …
BYTE ByteSize; // 通信字节位数,4—8
BYTE Parity; //指定奇偶校验方法。此成员可以有下列值:
EVENPARITY 偶校验   NOPARITY 无校验
MARKPARITY 标记校验  ODDPARITY 奇校验
BYTE StopBits; //指定停止位的位数。此成员可以有下列值:
ONESTOPBIT 1位停止位  TWOSTOPBITS 2位停止位
ONE5STOPBITS  1.5位停止位
  ………
 } DCB;
winbase.h文件中定义了以上用到的常量。如下:
#define NOPARITY      0
#define ODDPARITY      1
#define EVENPARITY     2
#define ONESTOPBIT     0
#define ONE5STOPBITS    1
#define TWOSTOPBITS     2
#define CBR_110       110
#define CBR_300       300
#define CBR_600       600
#define CBR_1200      1200
#define CBR_2400      2400
#define CBR_4800      4800
#define CBR_9600      9600
#define CBR_14400      14400
#define CBR_19200      19200
#define CBR_38400      38400
#define CBR_56000      56000
#define CBR_57600      57600
#define CBR_115200     115200
#define CBR_128000     128000
#define CBR_256000     256000
GetCommState函数可以获得COM口的设备控制块,从而获得相关参数:BOOL GetCommState(
  HANDLE hFile, //标识通讯端口的句柄
  LPDCB lpDCB //指向一个设备控制块(DCB结构)的指针
 );
SetCommState函数设置COM口的设备控制块:
BOOL SetCommState(
  HANDLE hFile,
  LPDCB lpDCB
 );
  除了在BCD中的设置外,程序一般还需要设置I/O缓冲区的大小和超时。Windows用I/O缓冲区来暂存串口输入和输出的数据。如果通信的速率较高,则应该设置较大的缓冲区。调用SetupComm函数可以设置串行口的输入和输出缓冲区的大小。BOOL SetupComm(
  HANDLE hFile,  // 通信设备的句柄
  DWORD dwInQueue,  // 输入缓冲区的大小(字节数)
  DWORD dwOutQueue  // 输出缓冲区的大小(字节数)
  );
  在用ReadFile和WriteFile读写串行口时,需要考虑超时问题。超时的作用是在指定的时间内没有读入或发送指定数量的字符,ReadFile或WriteFile的操作仍然会结束。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Win 串口 编程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接