发表于:2006/10/12 16:27:00
#0楼
现在我的外置串口modem连接计算机做被叫。主叫是单片机系统,计算机上用vb和MSComm控制。
过程是这样:
主叫拨号, 被叫有ring信号,然后连接被叫有connect 2400信号。
连接后主叫发送数据首先连接MSComm控件,我的控件可以接收到ring和connect 2400信号,但是就是收不到主叫得连接主程序(mscomm)信号,说明的modem之间的拨号连接是没问题,但是就是拨号连接后再传输数据,我的MSComm就收不到了,这是为什么?
我用串口助手看的结果(那个READY???就是我单片机连接mscomm的信号,如果服务器没有给
相应的回复信号主叫modem就会挂断):
------------------------------------------------
Ring
CONNECT 2400
READY???NO CARRIER
------------------------------------------------
我的VB部分程序是这样的:
---------------------------------------------------
Select Case MSComm.CommEvent
Case comEvCD ' CD 线的状态发生变化.
Case comEvCTS ' CTS 线的状态发生变化.
Case comEvDSR ' DSR 线的状态发生变化.
Case comEvRing ' Ring Indicator 变化.
Case comEvReceive ' 收到 RThreshold # of Data
byteDatabuf = MSComm.Input
If UBound(byteDatabuf()) > 5 Then '判断是否是请求信号
For i = LBound(byteDatabuf) To UBound(byteDatabuf)
strString = strString & Chr(byteDatabuf(i))
Next i
End If
Case comEvSend '传输缓冲区有 Sthreshold 个字符
End Select
---------------------------------------------------
那个strString里面有"RingCONNECT 2400NO CARRIER",就是没有我的READY???信号!
mscomm的其他时间我还不怎么会用,大虾帮我分析一下这是什么原因?
过程是这样:
主叫拨号, 被叫有ring信号,然后连接被叫有connect 2400信号。
连接后主叫发送数据首先连接MSComm控件,我的控件可以接收到ring和connect 2400信号,但是就是收不到主叫得连接主程序(mscomm)信号,说明的modem之间的拨号连接是没问题,但是就是拨号连接后再传输数据,我的MSComm就收不到了,这是为什么?
我用串口助手看的结果(那个READY???就是我单片机连接mscomm的信号,如果服务器没有给
相应的回复信号主叫modem就会挂断):
------------------------------------------------
Ring
CONNECT 2400
READY???NO CARRIER
------------------------------------------------
我的VB部分程序是这样的:
---------------------------------------------------
Select Case MSComm.CommEvent
Case comEvCD ' CD 线的状态发生变化.
Case comEvCTS ' CTS 线的状态发生变化.
Case comEvDSR ' DSR 线的状态发生变化.
Case comEvRing ' Ring Indicator 变化.
Case comEvReceive ' 收到 RThreshold # of Data
byteDatabuf = MSComm.Input
If UBound(byteDatabuf()) > 5 Then '判断是否是请求信号
For i = LBound(byteDatabuf) To UBound(byteDatabuf)
strString = strString & Chr(byteDatabuf(i))
Next i
End If
Case comEvSend '传输缓冲区有 Sthreshold 个字符
End Select
---------------------------------------------------
那个strString里面有"RingCONNECT 2400NO CARRIER",就是没有我的READY???信号!
mscomm的其他时间我还不怎么会用,大虾帮我分析一下这是什么原因?