本帖最后由 robinliubb 于 2011-7-29 12:27 编辑
小弟要从串口接收一组数据,并将其按不同的规则处理并显示出来
每秒串口输出的数据如下
57 40 00 20 11 07 28 19 59 58 01 07 00 00 00 09 00 00 00 11 00 00 00 5A 00 00 00 C8 06
要求转化结果为
57 40-->W,@
00 20 -->丢弃
11 07 28 19 59 58-->11年7月28日19点59分58秒
01 -->01下面数据有效,00下面数据无效
07 00 00 00 09 00 00 00 11 00 00 00 5A 00 00 00 -->有效:7,9,17,90 无效:NUL
C8 06 -->丢弃
W@11年7月28日19点59分58秒7,9,17,90
现已经用Mscomm控件完成数据的接收,保存于字符串变量receiveData中,望指教接下去该如何操作。
以下为串口接到的数据
1hex
2
期望转化目标
从控件显示
或者
在表格中显示
第一次发帖,有不到位的地方,还请各位多包涵
已经搞定了,只不过是做的自定义函数
- Public Function Comm(Rng As Range)
- Dim Str As String, Field1 As String, Field2 As String, Field3 As String, Field4 As String, H1 As String, H2 As String, H3 As String, H4 As String
- Str = Replace(Rng.Value, " ", "")
- Field1 = Chr(Application.WorksheetFunction.Hex2Dec(Mid(Str, 1, 2))) & Chr(Application.WorksheetFunction.Hex2Dec(Mid(Str, 3, 2)))
- Field2 = Mid(Str, 9, 2) & "年" & Mid(Str, 11, 2) & "月" & Mid(Str, 13, 2) & "日" & Mid(Str, 15, 2) & "点" & Mid(Str, 17, 2) & "分" & Mid(Str, 19, 2) & "秒"
- Field3 = Mid(Str, 21, 2)
- If Field3 <> "00" Then
- H1 = Application.WorksheetFunction.Hex2Dec(Mid(Str, 29, 2) & Mid(Str, 27, 2) & Mid(Str, 25, 2) & Mid(Str, 23, 2))
- H2 = Application.WorksheetFunction.Hex2Dec(Mid(Str, 37, 2) & Mid(Str, 35, 2) & Mid(Str, 33, 2) & Mid(Str, 31, 2))
- H3 = Application.WorksheetFunction.Hex2Dec(Mid(Str, 45, 2) & Mid(Str, 43, 2) & Mid(Str, 41, 2) & Mid(Str, 39, 2))
- H4 = Application.WorksheetFunction.Hex2Dec(Mid(Str, 53, 2) & Mid(Str, 51, 2) & Mid(Str, 49, 2) & Mid(Str, 47, 2))
- Field4 = H1 & "," & H2 & "," & H3 & "," & H4
- End If
- Comm = Field1 & Field2 & Field4
- End Function
复制代码
代码没有进行精简的。
附件:
(, 下载次数: 12)
|