环境:
  单片机,485接口接了一个485转网络的模块,模块有IP地址和端口号。
  普通计算机
 
  两者使用网线相连。  现在,能够直接使用winsock连接到模块,而且工作正常,但是,发送数据很麻烦
  使用如下方式:  winsock1.senddata &H55
  winsock1.senddata &HAA  
  winsock1.senddata &H1
  .
  .
  .  一位一位的送数据,系统能正常工作,可是很麻烦。  请教达人:
  
  如何把“55AA010101010101”这样的字符串,把55,AA,01,01转换为一位一位的发送出去?

解决方案 »

  1.   

    看你上面的应该是两位一发,你可以这样
        Dim strSend As String
        Dim i As Integer
        strSend = "55AA010101010101"
        
        For i = 1 To Len(strSend) / 2
        
            winsock1.senddata  "&H" & Right(Left(strSend, (i * 2)), 2)
            
        Next i
      

  2.   

    可是不行啊
    这样就可以
      winsock1.senddata &H55
      winsock1.senddata &HAA  
      winsock1.senddata &H1
      .
      .
      .
    兄弟的方法,那边接不到数据,单片没有反应...
      

  3.   

    Dim strData As String, bytArr() As Byte, i As IntegerstrData = "55AA010101010101"
    For i = 0 To Len(strData)\2 - 1
        Redim Preserve bytArr(i)
        bytArr(i) = Val("&H" & Mid(strData, i * 2 + 1, 2))
    Next iwinsock.senddata bytArr
      

  4.   

    改成这样试试:
        Const Delay = 0.1     '如果0.1的发送间隔还是不行话, 增大这个值
        Dim strSend As String
        Dim i As Integer, j As Single
        strSend = "55AA010101010101"
        
        For i = 1 To Len(strSend) / 2
            winsock1.senddata "&H" & Right(Left(strSend, (i * 2)), 2)
            j = Timer
            Do While Timer - j < Delay
                DoEvents
            Loop
        Next i