同时我在发送端也没有设置数据位。这是发送端的数据格式,请问接收端怎么设置?
FF(头)01(模块地址码)03(第三个端口)02(报警类型如短路报警)xx(校验和)。
FF(头)01(模块地址码)03(第三个端口)02(报警类型如短路报警)xx(校验和)。
解决方案 »
- 为何我运行VB程序会出现 Method or data member not found...
- VB怎么样调用Excel中录制好的宏?
- 讨论 winsock 常见以外情况和解决办法~
- 问一个比较土的问题:如何批量注释代码
- 《在线等》如何实现把数据库中某一条记录的值(所有字段,包含二进制字段)付给同一表内的新加记录呢?
- 关于vb工程复制问题
- is 问题!
- 一个关于mshflexgrid控件的简单问题***********在线等候**********
- VB可以写ERP/MRP/CRM/SCM?
- 小弟在这里先谢了!!
- optionButton按钮在运行时如何去掉他默认的选中项
- 怎样在内存中转换24位或8位图形为32位?
FF(头)XX(模块地址码)XX(端口号)XX(报警类型如短路报警)XXXXXXX(报警信息)XX(校验和)。
个人建议你在XX(校验和)的后面加一个结束标志这样在通讯的时候方便检测.
2、如果你的通讯包格式就是:FF(头)
01(模块地址码)
03(第三个端口)
02(报警类型如短路报警)
xx(校验和)
即每个包就是5个字节的数据,你可以用定长方式接收,不需要额外增加其它控制,这样就不需要改变下位机的程序。
.Settings = ammcommsetting//通讯参数
.InputMode = comInputModeBinary
.InputLen = 0
.InBufferCount = 0 //清空缓冲区
.OutBufferCount = 0//清空缓冲区
.RThreshold = 1
If .PortOpen = False Then
'判断通信口是否打开
.PortOpen = True '打开通信口
If Err Then '错误处理
MsgBox "串口通信无效"
Exit Sub
End If
end with
Private Sub MSComm1_OnComm() With MSComm1
Select Case .CommEvent
Case comEvReceive
ReDim ab(60) As Byte
.RThreshold = 0
TimeDelay 300 //延时0.3秒,根据实际情况定
av = .Input
ab = av //Dim av As Variant,Dim ab() As Byte
bool = True
.InBufferCount = 0
.OutBufferCount = 0
Case Else End Select
.RThreshold = 1
End With
End Sub