登录
首页 串口通信 串口通信
回帖 发帖
正文

主题:[求助]VB用MSComm控制modem进行数据传输的问题,大虾指点

点击:1126 回复: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的其他时间我还不怎么会用,大虾帮我分析一下这是什么原因?
06-10-12 16:27

工控新闻

更多新闻资讯