MsComm传送数据时接收与发送的控制

kaput 2000-04-04 09:31:00
感谢ljunfa,我的问题如下:
1)用output="*****"发送信息后在OnComm事件中接收时收到的信息不完全,有时甚至无响应,如发送"Trans Start" & chr(5) & chr(10) &chr(13)后,接收端用myBuffer=MsComm1.Input读取数据,结果有时读完有时读不忘。
2)我设置OutBuffeuCount=512,InputBufferCount=1024,文件发送完后,接收端常常不能读完最后的数据。
3)我是用VB写程序,RThreshold设置为1。其实这个问题核心是如何使发送与接收相匹配?(我用尽了判断Inbuffercount、Outbuffercount是否=0,DSRHolding、CTSHolding是否为True等方法), 因为接收端接收的Modem缓冲区内容与发送的数据的关系似乎为随机的(如发送"ABCDEFG",用BB=BB & Mscomm1.Input接收,显示之,发现有时是"ABCD"、有时是"A".......,接收端加上约0.6秒延迟后显示似乎正常,但控制符与文件混合发送、接收时又不匹配)。
本人愚笨的大脑已经被折腾好久了,可以上问题始终未解决,请各位高手帮帮忙。
...全文
344 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
vchuman 2000-04-04
  • 打赏
  • 举报
回复
接收的数据时会存在延时,需要查询接收到的数据大小,当接收到的数据的总体大小满足要求时才可以进行处理.
subzero 2000-04-04
  • 打赏
  • 举报
回复
VB编写MSCOMM比较麻烦
主要是UNICODE的问题
在VB中字是按照字元来表示的
一个汉字和一个字母都是一个字元
所以如果与控制符或ASC码大于128的字符混合发送的时候必须转换一下
sendstring=strconv(sendstring,vbfromunicode)
或者使用字符串函数的B版本
另外接收端肯定要有延时
否则字符还没有到达接收缓冲区
延时时间视情况而定
peacock 2000-04-04
  • 打赏
  • 举报
回复
Sorry!不用“If Check1.Value <> 1 Then”这句
peacock 2000-04-04
  • 打赏
  • 举报
回复
我用下面的方法还没出现问题,你不防试试:
'初始化
If MSComm1.PortOpen = False Then
MSComm1.CommPort = "2400,n,8,1"
MSComm1.Settings = 1
'以上参数由自己定义
MSComm1.InputLen = 1
MSComm1.RThreshold = 1 '设置/返回当接收到多少个字符时发生接收事件,为0时不发生接收事件
MSComm1.SThreshold = 1 '同上,用于发送事件
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
End If


'下面外部变量必须这样定义,否则不能正确接收
Dim InString As Variant '接收变量
Dim OutString() As Byte '发送变量

'在MSComm1的OnComm事件中加入以下代码
Select Case MSComm1.CommEvent
Case comEvReceive '接收事件
'接收缓冲区收到Rthreshold个字符时触发
If MSComm1.InBufferCount Then
InString = MSComm1.Input
For I = LBound(InString) To UBound(InString)
If Check1.Value <> 1 Then
'用Text1控件来显示接收的数据
Text1.Text = Text1.Text & CStr(Hex(Val(InString(I)))) & " "
End If
Next I
InString = ""
End If
Case comEvSend '发送事件
For I = LBound(OutString) To UBound(OutString)
'用Text2控件来显示接收的数据
Text2.Text = Text2.Text & CStr(Hex(Val(OutString(I)))) & " "
Next
End Select
Un1 2000-04-04
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/TopicView.asp?id=6207
Janven 2000-04-04
  • 打赏
  • 举报
回复
oh,看到你的原题了。
如果你能更改下层硬件通信协议的话,可以在发送之前加多一个成功响应标志,程序检验到这个字符,即可开始接收了。没有的话,自己以第一个信号为标志吧,得有些处理。注意监测程序是一个延时的循环,(能超时退出)我的程序中有类似的语句,你可以看看。但那是读串口的,监测的程序你自己编吧。

这是我的读写串口函数。我使用了MSCOMM控件。

dim inarr as byte()

Sub ReadMSComm(MsComm1or2, nNum As Integer)
Dim lcount
ReDim InArr(nNum - 1)

CommErr = False
' wait data return to comm port
lcount = 1
Do
DoEvents
lcount = lcount + 1
Loop Until MsComm1or2.InBufferCount >= nNum Or lcount > 5000
If lcount > 5000 Then
MsgBox "通讯出错, 复位并重新再试!", , "故障"
CommErr = True
Exit Sub
End If

'save bin data to buff
inbuf = MsComm1or2.Input

'trans data to system array
InArr = inbuf
End Sub

Sub WriteMSComm(MsComm1or2 As MSComm, byAscii As Byte)

Dim OutByArr(0) As Byte, OutBuf As Variant

OutByArr(0) = byAscii
OutBuf = OutByArr
MsComm1or2.Output = OutBuf
End Sub
作者: 李江全 汤智辉 朱东芹 出版社:人民邮电出版社  本书从测控工程应用的角度出发,对visual basic(缩写vb)开发测控程序的各种方法进行了全面阐述。内容包括在vb工程中调用activex控件和dll动态链接库等开发板卡数据采集与控制程序,在vb工程中利用mscomm控件、调用api函数等方法开发串口通信程序等。每种程序都提供了多个设计方法,每个设计都提供了线路图、详细的任务实现和完整的程序代码,所有代码均编译通过。   书中提供的典型测控应用实例都有详细的操作步骤,学习者可以按步骤用vb编程实现各种测控功能,实践操作性强是本书的特色。   本书内容丰富,论述深入浅出,有较强的实用性和可操作性,可供自动化、计算机应用、电子信息、机电一体化、测控仪器等专业的大学生、研究生以及从事计算机测控系统研发的工程技术人员学习和参考。 目录 第1章 计算机测控系统概述 1 1.1 计算机测控系统的含义与工作原理 1 1.1.1 计算机测控系统的含义 1 1.1.2 计算机测控系统的工作原理 2 1.2 计算机测控系统的任务和特点 3 1.2.1 计算机测控系统的任务 3 1.2.2 计算机测控系统的特点 5 1.3 计算机测控系统的组成 5 1.3.1 测控系统硬件组成 6 1.3.2 测控系统软件组成 8 1.4 计算机测控系统的分类 10 1.4.1 按功能分类 10 1.4.2 按设备形式分类 15 1.5 计算机测控系统应用软件的开发工具 17 1.5.1 面向机器的语言 17 1.5.2 高级语言 18 1.5.3 组态软件 19 第2章 vb程序设计基础 20 2.1 vb语言概述 20 2.1.1 vb语言的特点 20 .2.1.2 vb中文版集成开发环境 21 2.1.3 vb的操作对象 24 2.2 vb程序设计步骤 25 2.2.1 建立新工程项目 25 2.2.2 设计程序界面 26 2.2.3 设置对象属性 26 2.2.4 编写程序代码 27 2.2.5 运行应用程序 28 2.2.6 保存应用程序 28 2.2.7 编译形成可执行文件 29 2.2.8 打包发布 29 2.3 vb控制语句的使用 30 2.3.1 赋值语句 30 2.3.2 条件语句 30 2.3.3 选择语句 31 2.3.4 循环语句 32 2.4 vb内部函数 33 2.4.1 数学函数 33 2.4.2 字符串函数 34 2.4.3 日期与间函数 35 2.4.4 转换函数 35 2.4.5 判断函数 36 2.4.6 颜色设置函数 36 2.4.7 字符串的处理 38 2.5 vb用户界面设计 39 2.5.1 内部控件 39 2.5.2 activex控件 49 2.5.3 对话框 51 2.5.4 菜单设计 55 2.5.5 工具栏设计 57 第3章 基于板卡的数据采集与控制系统 60 3.1 数据采集与控制系统的组成 60 3.1.1 硬件子系统 60 3.1.2 软件子系统 62 3.1.3 系统特点 62 3.2 数据采集卡概述 63 3.2.1 数据采集卡的产生 63 3.2.2 数据采集卡的输入与输出信号 63 3.2.3 数据采集卡的类型 65 3.2.4 数据采集卡的性能指标 66 3.3 多功能板卡的安装 69 3.3.1 pci-1710hg多功能板卡介绍 69 3.3.2 用pci-1710hg多功能板卡组成测控系统 69 3.3.3 pci-1710hg板卡设备的安装 71 3.3.4 pci-1710hg板卡设备的测试 73 3.4 vb与数据采集 75 3.4.1 vb数据采集概述 75 3.4.2 activedaq控件的安装 75 3.4.3 activedaq控件说明 76 3.5 数据采集卡的编程方式 81 3.5.1 软件触发方式 81 3.5.2 中断传输方式 81 3.5.3 dma数据传输方式 81 3.6 在vb环境下建立activedaq应用工程 81 第4章 数据采集与控制程序设计典型实例 85 4.1 基于板卡的模拟量输入程序设计 85 4.1.1 设计目的 85 4.1.2 设计用软、硬件 85 4.1.3 硬件线路图 85 4.1.4 设计任务 86 4.1.5 任务实现 86 4.1.5.1 任务实现(一):利用activedaq控件实现模拟量输入 86 4.1.5.2 任务实现(二):利用dll函数实现模拟量输入 89 4.2 基于板卡的模拟量输出程序设计 93 4.2.1 设计目的 93 4.2.2 设计用软、硬件 93 4.2.3 硬件线路图 94 4.2.4 设计任务 94 4.2.5 任务实现 94 4.2.5.1 任务实现(一):利用activedaq控件实现模拟量输出 94 4.2.5.2 任务实现(二):利用dll函数实现模拟量输出 96 4.3 基于板卡的开关量输入程序设计 98 4.3.1 设计目的 98 4.3.2 设计用软、硬件 99 4.3.3 硬件线路图 99 4.3.4 设计任务 99 4.3.5 任务实现 100 4.3.5.1 任务实现(一):利用activedaq控件实现开关量输入 100 4.3.5.2 任务实现(二):利用dll函数实现开关量输入 101 4.4 基于板卡的开关量输出程序设计 103 4.4.1 设计目的 103 4.4.2 设计用软、硬件 103 4.4.3 硬件线路图 104 4.4.4 设计任务 104 4.4.5 任务实现 104 4.4.5.1 任务实现(一):利用activedaq控件实现开关量输出 104 4.4.5.2 任务实现(二):利用dll函数实现开关量输出 106 4.5 基于板卡的计数器输入程序设计 107 4.5.1 基于板卡的计数器输入程序设计目的 107 4.5.2 基于板卡的计数器输入程序设计用软、硬件 108 4.5.3 基于板卡的计数器输入程序硬件线路图 108 4.5.4 设计任务 108 4.5.5 任务实现 108 4.5.5.1 任务实现(一):利用activedaq控件实现计数器输入 108 4.5.5.2 任务实现(二):利用dll函数实现计数器输入 110 4.6 基于板卡的脉冲量输出程序设计 112 4.6.1 基于板卡的脉冲量输出程序设计目的 112 4.6.2 基于板卡的脉冲量输出程序设计用软、硬件 112 4.6.3 基于板卡的脉冲量输出程序硬件线路图 113 4.6.4 设计任务 113 4.6.5 任务实现 113 4.6.5.1 任务实现(一):利用activedaq控件实现脉冲量输出 113 4.6.5.2 任务实现(二):利用dll函数实现脉冲量输出 115 4.7 基于板卡的温度测量与控制程序设计 117 4.7.1 基于板卡的温度测量与控制程序设计目的 117 4.7.2 基于板卡的温度测量与控制程序设计用软、硬件 117 4.7.3 基于板卡的温度测量与控制程序硬件线路图 117 4.7.4 设计任务 118 4.7.5 任务实现 118 4.7.5.1 任务实现(一):利用activedaq控件实现温度测量与控制 118 4.7.5.2 任务实现(二):利用dll函数实现温度测量与控制 125 第5章 vb与串口通信 131 5.1 串行接口简介 131 5.1.1 串口通信的基本概念 131 5.1.2 rs-232c串口通信标准 136 5.1.3 串口通信线路连接 139 5.1.4 计算机中的串行端口 141 5.2 串行通信控件mscomm 143 5.2.1 mscomm控件处理通信的方式 143 5.2.2 mscomm控件的引用 144 5.2.3 mscomm控件的常用属性 145 5.2.4 mscomm控件的事件 149 5.2.5 mscomm控件通信步骤 151 5.3 应用api函数 152 5.3.1 动态链接库与api函数 152 5.3.2 vb与动态链接库 153 5.3.3 api函数声明 154 5.3.4 与串口通信有关的api函数 155 5.3.5 利用api函数实现串口通信的查询法 160 5.4 直接端口访问 161 5.4.1 动态链接库(dll)的生成 161 5.4.2 vb对动态键接库(dll)的读写 162 5.4.3 vb程序访问串口的方式 163 5.5 串口通信调试 164 5.5.1 调试软件 164 5.5.2 串口调试应用实例 165 5.5.3 用虚拟串口调试 170 第6章 vb串口通信程序设计典型实例 172 6.1 pc与pc串口通信程序设计 172 6.1.1 pc与pc串口通信程序设计目的 172 6.1.2 pc与pc串口通信程序设计用软、硬件 172 6.1.3 pc与pc串口通信程序硬件线路图 172 6.1.4 设计任务 173 6.1.5 任务实现 173 6.1.5.1 利用mscomm控件实现字符型数据发送接收 173 6.1.5.2 利用api函数实现字符型数据发送接收 177 6.1.5.3 利用mscomm控件实现pc双串口互通信 182 6.2 pc与单片机串口通信程序设计 184 6.2.1 pc与单片机串口通信程序实训目的 184 6.2.2 pc与单片机串口通信程序设计用软、硬件 184 6.2.3 pc与单片机串口通信程序硬件线路图 184 6.2.4 设计任务 185 6.2.5 任务实现 185 6.2.5.1 利用keil c51实现单片机与pc串口通信任务1 185 6.2.5.2 利用vb实现pc与单片机串口通信任务1 188 6.2.5.3 利用keil c51实现单片机与pc串口通信任务2(方法1) 191 6.2.5.4 利用vb实现pc与单片机串口通信任务2(方法1) 197 6.2.5.5 利用keil c51实现单片机与pc串口通信任务2(方法2) 202 6.2.5.6 利用vb实现pc与单片机串口通信任务2(方法2) 204 6.3 pc与智能仪器串口通信程序设计 206 6.3.1 pc与智能仪器串口通信程序设计目的 206 6.3.2 pc与智能仪器串口通信程序设计用软、硬件 206 6.3.3 pc与智能仪器串口通信程序硬件线路图 206 6.3.4 设计任务 208 6.3.5 任务实现 208 6.4 pc与plc串口通信程序设计 212 6.4.1 pc与plc串口通信程序设计目的 213 6.4.2 pc与plc串口通信程序设计用软、硬件 213 6.4.3 pc与plc串口通信程序设计硬件线路图 213 6.4.4 设计任务 214 6.4.5 任务实现 214 6.4.5.1 pc与西门子s7-200plc串口通信 214 6.4.5.2 pc与三菱fx2n-32mrplc串口通信 221 6.5 pc与读卡器串口通信程序设计 228 6.5.1 pc与读卡器串口通信程序设计目的 228 6.5.2 pc与读卡器串口通信程序设计用软、硬件 228 6.5.3 pc与读卡器串口通信程序硬件线路图 229 6.5.4 设计任务 229 6.5.5 任务实现 229 6.6 pc与gsm模块串口通信程序设计 232 6.6.1 pc与gsm模块串口通信程序设计目的 233 6.6.2 pc与gsm模块串口通信程序设计用软、硬件 233 6.6.3 pc与gsm模块串口通信程序硬件线路图 233 6.6.4 设计任务 234 6.6.5 任务实现 234 6.7 pc与调制解调器串口通信程序设计 247 6.7.1 pc与调制解调器串口通信程序设计目的 247 6.7.2 pc与调制解调器串口通信程序设计用软、硬件 247 6.7.3 pc与调制解调器串口通信程序硬件线路图 247 6.7.4 设计任务 248 6.7.5 任务实现 248 6.7.5.1 用vb编程实现向调制解调器发送指令并接收返回的字符 248 6.7.5.2 调制解调器与调制解调器连线通信 249 6.8 pc与云台控制系统串口通信程序设计 251 6.8.1 pc与云台控制系统串口通信程序设计目的 251 6.8.2 pc与云台控制系统串口通信程序设计用软、硬件 251 6.8.3 pc与云台控制系统串口通信程序硬件线路图 252 6.8.4 设计任务 252 6.8.5 任务实现 252 6.9 pc与电机驱动系统串口通信程序设计 257 6.9.1 pc与电机驱动系统串口通信程序设计目的 258 6.9.2 pc与电机驱动系统串口通信程序设计用软、硬件 258 6.9.3 pc与电机驱动系统串口通信程序硬件线路图 258 6.9.4 设计任务 259 6.9.5 任务实现 259 6.10 pc与常用测试仪器串口通信程序设计 262 6.10.1 pc与常用测试仪器串口通信程序设计目的 263 6.10.2 pc与常用测试仪器串口通信程序设计用软、硬件 263 6.10.3 pc与常用测试仪器串口通信程序硬件线路图 263 6.10.4 设计任务 263 6.10.5 任务实现 263 6.10.5.1 vb与噪音计串口通信 263 6.10.5.2 vb与电功率计串口通信 266 6.10.5.3 vb与转速计串口通信 270 第7章 集散控制系统及其程序设计典型实例 273 7.1 中小型dcs 273 7.1.1 中小型dcs的基本结构 273 7.1.2 rs-485串口通信标准 274 7.2 can总线控制技术 276 7.2.1 can总线技术特点 276 7.2.2 can总线接口的结构 277 7.2.3 典型的can总线测控系统 277 7.3 pc与智能仪器构成的dcs程序设计 279 7.3.1 pc与智能仪器构成的dcs程序设计目的 279 7.3.2 pc与智能仪器构成的dcs程序设计用软、硬件 280 7.3.3 pc与智能仪器构成的dcs程序硬件线路图 280 7.3.4 设计任务 281 7.3.5 任务实现 282 7.4 pc与远程i/o模块构成的dcs程序设计 287 7.4.1 pc与远程i/o模块构成的dcs程序设计目的 287 7.4.2 pc与远程i/o模块构成的dcs程序设计用软、硬件 287 7.4.3 pc与远程i/o模块构成的dcs程序硬件线路图 287 7.4.4 设计任务 291 7.4.5 任务实现 291 7.5 pc与can总线模块构成的dcs程序设计 294 7.5.1 pc与can总线模块构成的dcs程序设计目的 295 7.5.2 pc与can总线模块构成的dcs程序设计用软、硬件 295 7.5.3 pc与can总线模块构成的dcs程序硬件线路图 295 7.5.4 设计任务 296 7.5.5 任务实现 296 参考文献 302
第1章 串行通信原理与设计 1 1.1 串行通信基本概念 1 1.1.1 串行通信特点 1 1.1.2 串行通信传输方式 2 1.1.3 数据纠错与检错 2 1.1.4 传输速率与距离 3 1.2 串行传输协议 4 1.2.1 异步传输协议 4 1.2.2 面向字符的同步传输协议 5 1.2.3 面向比特的同步传输协议 7 1.3 串行接口标准 9 1.3.1 EIA RS-232C标准 9 1.3.2 RS-423A、RS-422A和RS-485标准 12 1.3.3 USB接口标准 14 1.4 串口硬件设计 15 1.4.1 串口应用设计流程 15 1.4.2 Windows下的串口资源 15 1.4.3 DCE与DTE设备的识别方法 16 1.4.4 握手处理 16 1.4.5 RS-232C与RS-485接口转换 17 1.4.6 接地及隔离技术 17 1.5 小结 20 第2章 使用MSComm控件编程 21 2.1 MSComm控件属性及事件 21 2.1.1 MSComm最常用的属性 21 2.1.2 与输入操作有关的属性 23 2.1.3 与输出操作有关的属性 24 2.1.4 与传输控制有关的属性 25 2.1.5 MSComm控件的事件 26 2.2 对不同类型数据的处理方法 26 2.2.1 使用MSComm控件发送接收字符串 27 2.2.2 使用MSComm控件发送接收二进制数据 27 2.3 MSComm错误处理方法 28 2.3.1 关于发送缓冲区 28 2.3.2 关于接收缓冲区 29 2.3.3 接收数据的实际处理方法 29 2.4 控件编程 30 2.4.1 加载及使用控件 31 2.4.2 初始化及打开串口 36 2.4.3 串口事件处理 37 2.4.4 关闭串口 38 2.4.5 关于协议的问题 38 2.5 通信编程实例 38 2.5.1 程序功能 38 2.5.2 界面设计 38 2.5.3 变量声明 40 2.5.4 创建串口 41 2.5.5 设置串口 42 2.5.6 打开串口 43 2.5.7 关闭串口 43 2.5.8 接收数据处理 44 2.5.9 实际传输文件截图 45 2.6 程序发布问题 45 2.7 小结 45 第3章 使用WinAPI串口编程 47 3.1 API串口编程概述 47 3.2 采用同步查询方式的编程方法 47 3.2.1 创建串口 48 3.2.2 关闭串口 53 3.2.3 发送数据 53 3.2.4 接收数据 53 3.2.5 定接收数据的方法 54 3.3 采用重叠I/O方式的编程方法 55 3.3.1 定义全局变量 55 3.3.2 创建串口 55 3.3.3 发出读写操作 56 3.3.4 读写线程函数的建立 57 3.3.5 关闭串口 61 3.4 采用事件驱动方式的编程方法 61 3.4.1 定义全局变量 61 3.4.2 打开串口及开启事件线程 62 3.4.3 发送数据 64 3.4.4 自定义消息函数读取数据 65 3.4.5 关闭串口及关闭事件线程 67 3.5 编程实例 67 3.5.1 程序功能 67 3.5.2 界面设计 68 3.5.3 变量声明 69 3.5.4 设置串口 70 3.5.5 打开串口 72 3.5.6 关闭串口 73 3.5.7 发送字符 73 3.5.8 命令的有效性处理 74 3.5.9 实际字符传送截图 75 3.6 小结 76 第4章 多线程编程 77 4.1 多线程基本概述 77 4.1.1 线程与进程 77 4.1.2 何使用多线程 78 4.1.3 多线程串口的应用 78 4.2 线程的操作 78 4.2.1 创建线程 78 4.2.2 终止线程 80 4.2.3 关于内存泄漏 81 4.3 线程间通信 81 4.3.1 使用全局变量 81 4.3.2 使用自定义消息 81 4.4 线程同步 82 4.4.1 使用临界区(Critical Section) 82 4.4.2 使用互斥对象(Mutex) 83 4.4.3 使用信号量(Semaphore) 84 4.4.4 使用事件(Event) 84 4.4.5 各种方法的比较 85 4.5 多线程串口程序设计 85 4.5.1 多线程的应用框架 85 4.5.2 相关的声明 86 4.5.3 创建线程 87 4.5.4 编写线程函数 87 4.5.5 编写消息响应函数 88 4.5.6 线程的结束 88 4.6 小结 89 第5章 TAPI编程 91 5.1 关于TAPI 91 5.1.1 什么是TAPI 91 5.1.2 Windows中的TAPI系统架构 91 5.1.3 Windows中的TAPI电话服务类型 92 5.2 TAPI 2.X介绍 93 5.2.1 基本概念 93 5.2.2 TAPI应用程序结构 93 5.2.3 常用函数介绍 94 5.3 CTapi14类介绍 98 5.3.1 变量/函数声明 98 5.3.2 初始化操作 100 5.3.3 创建函数 100 5.3.4 呼叫函数 101 5.3.5 回调函数处理方式 103 5.3.6 与回调相关的函数 103 5.3.7 处理呼叫状态的函数 105 5.3.8 处理连接状态的函数 108 5.3.9 挂机函数 109 5.3.10 通信状态显示函数 110 5.3.11 延函数 111 5.4 使用CTapi14类的编程实例 111 5.4.1 程序功能 111 5.4.2 界面设计 111 5.4.3 CTapi14类的使用方法 112 5.4.4 变量/函数声明 113 5.4.5 电话操作函数 114 5.4.6 消息处理函数 115 5.4.7 显示信息函数 117 5.4.8 实际使用截图 117 5.5 小结 118 第6章 计算机与单片机通信 119 6.1 单片机的串口原理 119 6.1.1 串口结构 119 6.1.2 串口寄存器及中断 120 6.2 串行通信硬件设计 121 6.2.1 常用接口芯片介绍 121 6.2.2 接口电路 121 6.3 串行口通信参数设置 122 6.3.1 波特率的设置 122 6.3.2 奇偶校验位的使用方法 123 6.3.3 通信协议约定 123 6.4 单片机的串口编程方法 124 6.4.1 功能描述 124 6.4.2 通信协议 124 6.4.3 初始化串口及寄存器 124 6.4.4 编写中断服务程序 125 6.5 计算机界面设计 128 6.5.1 功能描述 128 6.5.2 界面设计 128 6.6 计算机端程序设计 129 6.6.1 头文件引用及变量声明 129 6.6.2 初始化控件 131 6.6.3 向单片机发出请求 132 6.6.4 在控件事件中接收数据 133 6.6.5 超器的编程 140 6.6.6 关闭串口 141 6.7 小结 142 第7章 计算机与PLC通信 143 7.1 PLC的串口通信 143 7.1.1 PLC的通信方式 143 7.1.2 计算机与PLC通信流程 144 7.1.3 与通信相关的寄存器 144 7.1.4 与通信相关的指令 148 7.1.5 通信中断事件 149 7.1.6 通信中断指令 150 7.1.7 硬件连线及设置 151 7.1.8 PC/PPI电缆切换间的影响 151 7.2 PLC通信编程 152 7.2.1 功能描述 152 7.2.2 通信协议 152 7.2.3 程序结构及变量说明 153 7.2.4 主程序 154 7.2.5 初始化 154 7.2.6 发送接收处理 155 7.3 计算机界面设计 158 7.3.1 主界面设计 158 7.3.2 设置对话框设计 159 7.4 计算机程序设计 160 7.4.1 功能描述 160 7.4.2 变量/函数声明 160 7.4.3 初始化代码 161 7.4.4 参数配置 162 7.4.5 读串口操作 166 7.4.6 写串口操作 169 7.4.7 接收数据处理 172 7.4.8 命令有效性处理 178 7.4.9 实际传输数据截图 179 7.5 小结 180 第8章 计算机与Modem的通信 181 8.1 Modem的工作原理 181 8.1.1 Modem的基本工作原理 181 8.1.2 Modem的功能介绍 182 8.1.3 内置Modem与外置Modem 182 8.2 Modem的通信标准 183 8.2.1 调制协议 183 8.2.2 差错控制协议 184 8.2.3 数据压缩协议 184 8.2.4 文件传输协议 184 8.3 Modem的AT命令 185 8.3.1 Modem工作状态切换 185 8.3.2 AT命令串简介 187 8.3.3 常用基本AT命令分类 187 8.3.4 呼叫与应答相关命令 187 8.3.5 状态切换命令 190 8.3.6 握手相关命令 191 8.3.7 基本AT命令的简单测试方法 192 8.3.8 常用寄存器命令及寄存器含义 194 8.3.9 使用PSTN进行串行通信的工作流程 195 8.4 使用Modem远程传输文件程序设计 196 8.4.1 功能描述 196 8.4.2 通信流程 197 8.4.3 XModem通信协议 198 8.4.4 界面设计 199 8.4.5 变量声明 200 8.4.6 初始化 201 8.4.7 串口配置与操作 202 8.4.8 发送文件 204 8.4.9 接收文件 205 8.4.10 OnComm事件函数 206 8.4.11 建立超器 228 8.5 小结 230 第9章 两台计算机间通信 231 9.1 通信方式介绍 231 9.2 通信协议 232 9.2.1 通信流程 233 9.2.2 数据包格式 233 9.3 通信实现思路 234 9.3.1 功能描述 234 9.3.2 通信事件的处理方法 235 9.3.3 各种操作状态的含义 235 9.4 界面设计 237 9.4.1 主界面设计 237 9.4.2 设置对话框设计 238 9.5 程序设计 239 9.5.1 变量/函数声明 239 9.5.2 初始化代码 241 9.5.3 参数配置 242 9.5.4 发送文件 246 9.5.5 事件消息响应函数 248 9.5.6 命令的有效性处理 267 9.5.7 自定义功能函数 269 9.5.8 程序测试 274 9.6 小结 274 第10章 软件传真机 275 10.1 传真的基本知识 275 10.1.1 工作原理 275 10.1.2 传真机的分类 276 10.1.3 传真机通信规程 277 10.2 关于传真精灵SmartFax 278 10.2.1 主要功能 278 10.2.2 发送传真函数 278 10.2.3 接收传真函数 281 10.2.4 其他功能函数 283 10.2.5 如何使用传真精灵 284 10.3 软件传真机程序设计 285 10.3.1 功能介绍 285 10.3.2 界面设计 286 10.3.3 关于头文件的引用 289 10.3.4 变量/函数声明 289 10.3.5 初始化操作 291 10.3.6 程序流程分析 293 10.3.7 关于TAPI操作的函数 296 10.3.8 发送传真相关函数 304 10.3.9 接收传真相关函数 306 10.3.10 传真消息响应函数OnSmartFax() 309 10.3.11 传真参数相关操作函数 317 10.3.12 其他功能函数 322 10.4 小结 324 第11章 计算机与射频卡通信 325 11.1 射频卡简介 325 11.1.1 射频卡工作原理 325 11.1.2 射频卡的分类 326 11.1.3 射频卡的优点 327 11.1.4 射频卡的应用 327 11.2 射频卡的应用框架 327 11.3 MIFARE卡介绍 328 11.3.1 TYPE A 与TYPE B 328 11.3.2 TYPE A 卡的初始化与防冲突 329 11.3.3 MIFARE 1型卡的存储结构 333 11.3.4 MIFARE 1型卡存取控制与数据区的关系 334 11.4 射频卡模块介绍 336 11.4.1 MCM200/MCM500概述 336 11.4.2 MCM200/MCM500接口简介 337 11.4.3 MCM200/MCM500读写操作过程 338 11.4.4 ZLG500A读写模块介绍 339 11.5 射频卡应用的设计 340 11.5.1 读写器成品的设计方法 340 11.5.2 使用射频卡模块的设计方法 340 11.6 小结 340 第12章 组态王的应用 341 12.1 组态王参数设置 341 12.1.1 RS-485板卡的使用方法 341 12.1.2 串口通信方式 342 12.1.3 串口参数设置 346 12.2 组态王通信协议 346 12.2.1 寄存器定义 346 12.2.2 读命令格式 347 12.2.3 写命令格式 347 12.2.4 命令格式中的符号说明 348 12.2.5 命令举例说明 349 12.3 组态王端的程序设计 350 12.3.1 程序功能 350 12.3.2 界面设计 350 12.3.3 KingComClient设备的设置 352 12.3.4 变量定义 352 12.3.5 命令语言 353 12.4 计算机端的程序设计 353 12.4.1 功能描述 353 12.4.2 界面设计 354 12.4.3 变量/函数声明 355 12.4.4 初始化代码 356 12.4.5 串口配置与操作 357 12.4.6 串口事件响应函数 361 12.4.7 自定义功能函数 368 12.4.8 模拟数值的产生 372 12.4.9 实际通信截图 372 12.5 小结 374 第13章 云台及镜头控制系统 375 13.1 云台及镜头的应用概况 375 13.1.1 数字监控系统概述 375 13.1.2 监控系统组成 375 13.2 如何控制云台与镜头 376 13.2.1 云台及镜头的设备简介 376 13.2.2 云台及镜头的控制原理 377 13.2.3 解码器概述 377 13.2.4 常用通信协议 377 13.3 串口控制云台和镜头程序设计 378 13.3.1 硬件接线说明 378 13.3.2 通信协议介绍 379 13.3.3 程序功能 380 13.3.4 界面设计 380 13.3.5 变量/函数声明 383 13.3.6 初始化操作 386 13.3.7 按下与弹起控制的实现方法 388 13.3.8 串口操作 407 13.3.9 发送数据 408 13.3.10 程序测试截图 417 13.4 小结 417 附录 串口调试 419

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧