我用mscomm收数据 对方发送16进制的数据 如果inputmode 0的话,Asc(mscomm1.input)可能溢出 
如果inputmode 1的话,我不知道对2进制怎么处理(好像没2进制的数据变量),我想把对方发送的10进制 到我这边能变成10进制 
请高手指点,多谢

解决方案 »

  1.   

    “对方发送16进制的数据”
    ============
    别管发出来的是什么,收到的就是一个数,你可以直接读。估计你是把ascii和数字弄混了
      

  2.   

    你要显示还是进行 计算   对方的10进制是怎么样表示的 (用ascii码  直接用2进制数表示)
      

  3.   

    你可以采用二进制的方式接收:
    打开串口设定:
    MSComm1.InputMode = comInputModeBinary接收时按byte类型接收,对于收到的每一个byte,按通讯的意义进行处理。
      

  4.   

    楼上正解。给个小例子,你自己看:
    Dim Sd_Data(1) as Byte
    Dim Rv_Data() as Byte
    Sd_Data(0) = &HFF
    Sd_Data(1) = &HEE
    MSComm1.InputMode = comInputModeBinary
    MSComm1.InputBufferCount = 0    //清空接收缓冲区
    MSComm1.Output = Sd_Data       //发送&HFF,&HEE两个字节过去
    '延时N毫秒
    Sleep(N)
    Rv_Data = MSComm1.Input
    For I=0 To Ubound(Rv_Data)
      Text1.Text = Text1.Text & "," & Hex$(Rv_Data(I))
    Next好了,结果会显示在Text1中的。
      

  5.   

    1,楼上的都急于回答你的问题。但我觉得你最大的问题在,搞不清"数制"!
    这句话就是最好的说明:“我想把对方发送的10进制 到我这边能变成10进制”2,串行口上的"走"的数据都是二进制格式的,传到PC机,通过MSCOMM接收下来
    后如何处理,才开始涉及到InputMode 问题。