下载此文档

win32 api 串口编程.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
win32 api 串口编程分类: C/C++ 2007-11-22 14:19 1158 人阅读评论(0) 收藏举报一、基本知识 Win32 下串口通信与 16 位串口通信有很大的区别。在 Win32 下,可以使用两种编程方式实现串口通信, 其一是调用的 Windows 的 API 函数, 其二是使用 ActiveX 控件。使用 API 调用, 可以清楚地掌握串口通信的机制, 熟悉各种配置和自由灵活采用不同的流控进行串口通信。下面介绍串口操作的基本知识。打开串口:使用 CreateFile() 函数,可以打开串口。有两种方法可以打开串口,一种是同步方式( NonOverlapped ), 另外一种异步方式( Overlapped )。使用 Overlapped 打开时,适当的方法是: HANDLE hComm; hComm = CreateFile( gszPort, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); if (hComm == INVALID_HANDLE_VALUE) // error opening port; abort 配置串口: 配置 DCB ( Device Control Block )结构定义了串口通信设备的控制设置。许多重要设置都是在 DCB 结构中设置的,有三种方式可以初始化 DCB 。(1) 通过 mState() 函数得 DCB 的初始值,其使用方式为: DCB dcb = {0}; if (!mState(hComm, & dcb)) // Error getting current DCB settings else // DCB is ready for use. (2) 用 mDCB() 函数初始化 DCB 结构,该函数填充 DCB 的波特率、奇偶校验类型、数据位、停止位。对于流控成员函数设置了缺省值。其用法是: DCB dcb; FillMemory( & dcb, sizeof (dcb), 0); = sizeof (dcb); if (!mDCB( “ 9600,n,8,1", & dcb)) { // Couldn't build the DCB. Usually a problem // with munications specification string. return FALSE; } else // DCB is ready for use. (3) 用 mState() 函数手动设置 DCB 初值。用法如下: DCB dcb; FillMemory( & dcb, sizeof (dcb), 0); if (!mState(hComm, & dcb)) // get current DCB // Error in mState return FALSE; // Update DCB rate. = CBR_9600 ; // Set new state. if (!mState(hComm, & dcb)) // Error in mState. Possibly a problem with municat

win32 api 串口编程 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人fy5186fy
  • 文件大小106 KB
  • 时间2017-02-19