文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发C/C++深入浅出Win32多线程程序设计之综合实例
精品推荐
特别推荐
·C语言编程易犯毛病集合
·C语言编程常见问题解答(目录)
·C#程序开发中的常用函数汇总
·C/C++笔试、面试题目大汇总
·Beej的网络socket编程指南
·socket编程原理
·C语言的常用库函数使用方法分析及用途
·在C语言中如何处理时间和日期
·C++设计模式之Singleton
·VC++动态链接库编程之MFC扩展 DLL
·TCP/IP网络重复型服务器通信软件的设计
·DirectX游戏开发入门
·经典与现代的结合:在MFC中集成RAD .NET框架
·Windows API-GDI入门基础知识详解(2)
·Visual C++ 入门精解
·C#基础概念二十五问
·用C#实现pdf文件的完整性验证
·成为嵌入式程序员应知道的0x10个问题
·TCP/IP编程实现远程文件传输
·几个C#编程的小技巧
热点TOP10
·学生成绩管理系统实习
·C#编写的windows计算器-源代码
·socket编程原理
·飞机订票系统设计
·C/C++笔试、面试题目大汇总
·TCP/IP编程实现远程文件传输
·Visual C++ 实现数字化图像的分割
·C语言图形函数
·改编 的 C版 职工管理系统
·C语言的常用库函数使用方法分析及用途
·C#源码读取excel数据到程序中-SQL SERVER-到dataset中
·C#基础概念二十五问
·用C语言实现Ping程序功能
·C# GridView 排序及分页
·进程调度模拟程序
·Windows下C语言网络编程快速入门
·通讯录的源代码(用链表实现)
·在Visual Studio.NET中使用Crystal Report(上)
·DirectX游戏开发入门
·asp.net中调用javascript函数实现多功能日期控件示例

深入浅出Win32多线程程序设计之综合实例

日期:2008年6月6日 作者: 查看:[大字体 中字体 小字体]


 本章我们将以工业控制和嵌入式系统中运用极为广泛的串口通信为例讲述多线程的典型应用。

  而网络通信也是多线程应用最广泛的领域之一,所以本章的最后一节也将对多线程网络通信进行简短的描述。

  1.串口通信

  在工业控制系统中,工控机(一般都基于PC Windows平台)经常需要与单片机通过串口进行通信。因此,操作和使用PC的串口成为大多数单片机、嵌入式系统领域工程师必须具备的能力。

  串口的使用需要通过三个步骤来完成的:

  (1) 打开通信端口;

  (2) 初始化串口,设置波特率、数据位、停止位、奇偶校验等参数。为了给读者一个直观的印象,下图从Windows的"控制面板->系统->设备管理器->通信端口(COM1)"打开COM的设置窗口:

深入浅出Win32多线程程序设计之综合实例



  (3) 读写串口。

  在WIN32平台下,对通信端口进行操作跟基本的文件操作一样。

  创建/打开COM资源

  下列函数如果调用成功,则返回一个标识通信端口的句柄,否则返回-1:

HADLE CreateFile(PCTSTR lpFileName, //通信端口名,如"COM1"
WORD dwDesiredAccess, //对资源的访问类型
WORD dwShareMode, //指定共享模式,COM不能共享,该参数为0
PSECURITY_ATTRIBUTES lpSecurityAttributes,
//安全描述符指针,可为NULL
WORD dwCreationDisposition, //创建方式
WORD dwFlagsAndAttributes, //文件属性,可为NULL
HANDLE hTemplateFile //模板文件句柄,置为NULL
);
  获得/设置COM属性

  下列函数可以获得COM口的设备控制块,从而获得相关参数:

BOOL WINAPI GetCommState(
 HANDLE hFile, //标识通信端口的句柄
 LPDCB lpDCB //指向一个设备控制块(DCB结构)的指针
);
  如果要调整通信端口的参数,则需要重新配置设备控制块,再用WIN32 API SetCommState()函数进行设置:

BOOL SetCommState(
 HANDLE hFile, //标识通信端口的句柄
 LPDCB lpDCB //指向一个设备控制块(DCB结构)的指针
);
  DCB结构包含了串口的各项参数设置,如下:

typedef struct _DCB
{
 // dcb
 DWORD DCBlength; // sizeof(DCB)
 DWORD BaudRate; // current baud rate
 DWORD fBinary: 1; // binary mode, no EOF check
 DWORD fParity: 1; // enable parity checking
 DWORD fOutxCtsFlow: 1; // CTS output flow control
 DWORD fOutxDsrFlow: 1; // DSR output flow control
 DWORD fDtrControl: 2; // DTR flow control type
 DWORD fDsrSensitivity: 1; // DSR sensitivity
 DWORD fTXContinueOnXoff: 1; // XOFF continues Tx
 DWORD fOutX: 1; // XON/XOFF out flow control
 DWORD fInX: 1; // XON/XOFF in flow control
 DWORD fErrorChar: 1; // enable error replacement
 DWORD fNull: 1; // enable null stripping
 DWORD fRtsControl: 2; // RTS flow control
 DWORD fAbortOnError: 1; // abort reads/writes on error
 DWORD fDummy2: 17; // reserved
 WORD wReserved; // not currently used
 WORD XonLim; // transmit XON threshold
 WORD XoffLim; // transmit XOFF threshold
 BYTE ByteSize; // number of bits/byte, 4-8
 BYTE Parity; // 0-4=no,odd,even,mark,space
 BYTE StopBits; // 0,1,2 = 1, 1.5, 2
 char XonChar; // Tx and Rx XON character
 char XoffChar; // Tx and Rx XOFF character

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] 下一页 




上一篇:C++箴言:理解typename的两个含义

下一篇:C++箴言:谨慎使用多继承

深入浅出Win32多线程程序设计之综合实例 相关文章:
·DIV CSS网页布局实例:十步学会用CSS建站
·[综合]召唤兽常见技能资质表(最新修补完整版)
·Photoshop实例:制作超酷影片画面场景
·Photoshop精细抠像实例
·Photoshop实例:调出漂亮MM的唯美效果
·ASP.NET上传文件的实例
·3DS Max特效片头精彩实例——星光灿烂
·ASP.NET 2.0的导航控件treeview和menu的实例
·CAD三维基础实例教程
·常用网络命令及命令实例详解
深入浅出Win32多线程程序设计之综合实例 相关软件:
·C语言程序设计
·中文版Excel 2003实例与技巧
·CorelDraw12 入门与实例(图文教程 菜鸟先飞系列教材)
·Flash MX 动画制作实例教程
·Windows环境下32位汇编语言程序设计
·中文版 AutoCAD2004 应用实例与技巧
·PhotoShop7 设计百例 + 经典实例教程 + 滤镜教学
·C语言程序设计视频教程 CSF 教材:谭浩强《c程序设计》
·AutoCAD2002入门与实例详解
·英语自考-综合英语(一)上册 - 第01讲(全16讲)

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn