MSComm接收转换问题

please0415 2008-10-17 04:16:20
Dim bb As Integer
Dim cc As String
Dim newStr As Variant

Dim var As Variant

var = MSComm1.Input
bb = AscW(Mid(var, 11, 1))

上面是部分代码,我是要实现从设备里读出数据,并把读出的数做加或减等数据运算.上面使用ASC时只能在0-127之前做加减运算,128-255间的数被读出后如何转换成能进行算术运算的值.
...全文
195 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
PERFECTLXY 2009-03-28
  • 打赏
  • 举报
回复
看看
kingsang 2008-10-23
  • 打赏
  • 举报
回复
d
zdingyun 2008-10-17
  • 打赏
  • 举报
回复
LZ:须按2进制方式接收:
Option Explicit
Dim strData As String

Private Sub Form_Load()
MSComm1.Settings = "9600,N,8,1"
MSComm1.RThreshold = 1
MSComm1.InputMode = comInputModeBinary
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Dim BytReceived() As Byte
Select Case MSComm1.CommEvent
Case 2
MSComm1.InputLen = 0
BytReceived() = MSComm1.Input
Dim i As Integer
For i = 0 To UBound(BytReceived)
If Len(Hex(BytReceived(i))) = 1 Then
strData = strData & "0" & Hex(BytReceived(i))
Else
strData = strData & Hex(BytReceived(i))
End If
Next
'按通信协议写接收数据处理代码
End Select
End Sub

接收的BYTE数组转换为16进制字符串形式,待按通信协议进行数据处理.

864

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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