首先要保证两Modem间线路已经连通,否则要编码拨号(也可能在两Modem间以专线方式连通)。
MSCOMM收到数据后会产生OnComm事件,在事件中判断CommEvent属性,若为 comEvReceive,则说明有数据到达,你可在此事件中将收到的数据保存起来。
数据处理有两种方式:
1. 应答方式:知道数据传输的延时时间时使用。向单片机方发送指令,等待一定时间后,直接判断数据串。
2. 中断方式:发出指令后,不用管它,而在OnComm事件中判断数据是否符合标准,而进行某些操作。MSCOMM控件的具体用法可参考VB的帮助MSDN

解决方案 »

  1.   

    首先要保证两Modem间线路已经连通,否则要编码拨号(也可能在两Modem间以专线方式连通)。
    MSCOMM收到数据后会产生OnComm事件,在事件中判断CommEvent属性,若为 comEvReceive,则说明有数据到达,你可在此事件中将收到的数据保存起来。
    数据处理有两种方式:
    1. 应答方式:知道数据传输的延时时间时使用。向单片机方发送指令,等待一定时间后,直接判断数据串。
    2. 中断方式:发出指令后,不用管它,而在OnComm事件中判断数据是否符合标准,而进行某些操作。MSCOMM控件的具体用法可参考VB的帮助MSDN
      

  2.   

    什么?用Modem连接单片机?兄台你不会是想制造《模拟人生》里那个比隐形轰炸机按纽还多,并且带56KModem的高档马桶吧?  一般来说单片机是传输二进制信息的。你需要把信息变成二进制数组(可以用MidB()函数一个一个变,也可以用文件代一下)。
    以InBufferSize设置和返回缓冲区的字节数量。
    以Output属性发送。
    以Input属性发送。比如下面的程序:根据马桶坐垫温度探测器返回使用者的PP的温度,然后将马桶垫加热到和使用者PP差不多的温度(这样不会冰到PP)。(不过千万小心!GetFireSet(tString)函数不要计算失误,尤其不要偏高。否则用这个马桶的人的PP就要……)If MSComm1.InBufferCount Then
      tString = MSComm1.Input          '接受远程马桶上单片机返回的信息。
      If Mid(tString,1,2)="SG" Then    '马桶返回使用者体温。
        NewFireSet=GetFireSet(tString) '返回计算后的温度控制指令。
        MSComm1.Output NewFireSet      '把温度控制指令发给马桶。
      End If
    End If