第1章轻松体验串口通信编程与调试 1
1.1 使用串口调试助手来体验串口通信 1
目录 1
1.2体验Windows环境下的Visual C++串口通信编程 4
1.3 体验DOS环境下Turbo C串口通信编程 12
第2章 多线程串口编程工具CSerialPort类 16
2.1 CSerialPort类的功能及成员函数介绍 16
2.2应用CSerialPort类编制基于对话框的应用程序 30
2.3应用CSerialPort类编制基于单文档的应用程序 35
2.4.1 改进一:ASCII文本和二进制数据发送方式兼容 40
2.4对CSerialPort类的改进 40
2.4.2改进二:也许能解决内存泄漏 43
2.4.3改进三:彻底关闭串口,释放串口资源 44
第3章控件MSComm串口编程 46
3.1 MSComm控件介绍 46
3.1.1 VC中应用MSComm控件编程步骤 46
3.1.2 MSComm控件串行通信处理方式 47
3.1.3MSComm控件的属性说明 48
3.1.4 MSComm控件错误信息 55
3.2.1 使用VARIANT和SAFEARRAY数据类型从串口读写数据 56
3.2使用MSComm控件的几个疑难问题 56
3.2.2 MSComm控件能离开对话框独立存在吗 59
3.2.3如何发送接收ASCII值为0和大于128的字符 60
3.2.4在同一程序中用MSComm控件控制多个串口的具体操作方法 62
3.2.5解决使用控件编程时程序占用的内存会不断增大的问题 62
3.2.6在MSComm控件串口编程时遇到的其他问题 63
3.3在基于单文档(SDI)程序中应用MSComm控件 63
3.4应用MSComm控件控制多个串口实例 69
3.5 串口与MODEM拨号应用简例 76
3.5.1创建工程 76
3.5.2代码分析 78
3.5.3应用 85
第4章Windows API串口编程 87
4.1 Windows API串口编程概述 87
4.2 API串口编程中用到的结构及相关概念说明 89
4.2.1 DCB(Device Control Block)结构 89
4.2.2超时设置COMMTIMEOUTS结构 92
4.2.3 OVERLAPPED异步I/O重叠结构 94
4.2.4通信错误与通信设备状态 95
4.2.5串行通信事件 96
4.3 Windows API串行通信函数 97
4.4.2用查询方式读串口 116
4.4.1 Win32API串口通信编程的一般流程 116
4.4 Win32 API串口通信编程的一般流程和特殊实例 116
4.4.3 同步I/O读写数据 117
4.4.4关于流控制的设置问题 118
4.5 CSerialPort类中的API函数编程应用剖析 119
4.6 Win32 API串口编程TTY(虚拟终端)实例 128
4.6.1建立程序工程 128
4.6.2建立串口设置对话框 129
4.6.3编写CTermDoc类的相关代码 132
4.6.4小结 141
4.6.5在CTermView类中字添加符键入处理代码与串口接收处理代码 142
第5章 串口调试助手V2.2编程 147
5.1 建立SCOMM程序工程实现界面功能 147
5.2 串口的初始化及关闭 150
5.3 串口数据的发送与接收及十六进制数据的处理 151
5.3.1十六进数据发送处理 152
5.3.2手动发送处理 152
5.3.3 自动发送处理 153
5.3.4接收处理及十六进制显示 154
5.4其他辅助功能的实现 156
5.4.1接收数据的文件保存 156
5.4.2实现小文件发送 158
5.4.3 图钉按钮功能使程序能浮在最上层 161
5.4.4对话框动画图标的实现 162
5.4.5超链接功能的实现 164
5.4.6如何打开帮助网页文件 164
第6章DOS环境下的Turbo C串口编程及通用实例GSerial类 168
6.1 PC机异步通信适配器8250及其编程操作 169
6.1.1 INS8250内部寄存器及其选择方式 169
6.1.2波特率设置 169
6.1.3数据位、奇偶校验、停止位等数据格式设置 170
6.1.5中断I/O通信方式相关设置 171
6.1.4查询I/O方式相关设置 171
6.1.6 MODEM寄存器 172
6.2 COMRXTX程序实例 173
6.3 通用实例程序GSerial类 175
6.4 用GSerial类控制多串口 186
6.5 多串口编程PC机高号中断8259A可编程中断控制器的控制 195
第7章 串口通信用户层协议的编制与数据处理方法 197
7.1通信协议的编制 197
7.1.1 为什么要编制用户通信协议 197
7.1.2 串口通信中用户层协议编制原则 199
7.1.3 在串口通信中几种常用的用户层协议 200
7.2 串口通信数据包处理方法编程实例 202
7.2.1编程任务 203
7.2.2编程步骤 203
7.2.3程序测试 216
第8章单片机串口通信 218
8.1 单片机串口硬件系统及C51程序开发 218
8.1.1较典型的单片机硬件系统实例 218
8.1.2 C51语言及程序简介 220
8.1.3开发C51程序的利器Keil C51 uVision2及串口程序仿真 221
8.2 C51单片机串口通信程序实例 226
8.2.1实例一 226
8.2.2实例二 227
第9章 串口与网络结合的解决方案及编程 230
9.1 串口与网络结合的硬件解决方案 230
9.2典型串口与联网的设备 231
9.2.1 NPort5400系列产品的特点 231
9.2.2 NPort 5400系列产品的典型应用介绍 233
9.2.3 NPort5400系列产品的设置与编程测试 235
9.3 与Access数据库结合的串口通信实例 237
9.3.1微机网络检测系统说明 237
93.2创建ODBC数据源 238
9.3.3创建工程 239
9.3.4程序简介 244
9.4与WinSock结合的串口通信实例 246
9.4.1客户端应用程序 247
9.4.2服务器应用程序 252
9.5在已经编好的串口通信程序中加入网络通信功能 260
9.5.1参照MFC AppWizard创建WinSockets程序 261
9.5.2利用Windows Sockets API和第三方提供的类进行编程 262
9.6串口通信用于遥控操作简例 262
第10章计算机串口与其他设备通信编程实例 266
10.1通过串口收发短消息 266
10.1.1 SMS编码规范及编码与解码例程 266
10.1.2 AT命令收发短消息实例 273
10.1.3 “实时”接收短消息的方法 281
10.1.4用串口收发SMS短信编程的一些讨论 283
10.2计算机与Rabbit 2000嵌入式系统通信编程实例 286
10.2.1 Rabbit 2000微处理器介绍 286
10.2.2动态C(Dynamic C)语言介绍 287
10.2.3某车载无线调度系统实例介绍 288
10.3计算机与PLC通信程序实例 294
10.4 MATLAB环境串口编程通信实例 295
10.4.1 MATLAB串口类Serial应用 295
10.4.3 xPC目标环境下串口通信实现 299
10.4.2通过串口使MATLAB Simulink与下位机通讯进行控制 299
11.1 串口通信基本概念 302
11.1.1 串行通信概述 302
第11章 串口通信基本概念及标准 302
11.1.2单工、半双工和全双工的定义 305
11.1.3同步传送与异步传送 306
11.1.4串行通信协议 306
11.2 RS-232-C串口标准 309
11.2.1 RS-232-C标准 309
11.2.2 RS-232-C串行通信接线实例 312
11.3.1概述 314
11.3 RS-422/485串口标准 314
11.3.2 RS-422与RS-485串行接口标准 315
11.3.3 RS-422与RS-485的网络安装注意要点 317
11.3.4 RS-232、RS422、RS485电气参数对比 318
11.4串口调试注意事项 318
11.5常用数据校验法 318
11.5.1奇偶校验 318
11.5.2循环冗余码校验 319
11.8.1 MODEM的基本工作原理 320
11.8 MODEM通信技术 320
11.7 现场总线与RS-232、RS-485的本质区别 320
11.6 串口连接和TCP/IP连接对比 320
11.8.2MODEM的功能 322
11.8.3 MODEM的分类 322
11.8.4MODEM的安装 324
11.8.5 MODEM V.92标准介绍 326
11.8.6 MODEM的速度 327
11.8.7 MODEM优化方法 328
11.8.8 MODEM命令/AT命令 329
12.1.1虚拟设备驱动程序VxD 338
12.1 驱动程序的基本概念:VxD与WDM 338
第12章不占用串口的串口数据捕捉 338
12.1.2 Win32驱动程序模型WDM 340
12.1.3在不同操作系统下选用哪种驱动程序模式 341
12.2 VxD示例程序介绍——VToolsD中的CommHook 341
12.3 串口数据捕捉实例程序 351
12.3.1编程任务 351
12.3.2编程步骤 351
12.4虚拟串口简介 364
附录A Turbo C说明 366
附录B ASCII码表 376