您现在所在的是:

串口通信

回帖:0个,阅读:1097 [上一页] [1] [下一页]
908
Rite2000
文章数:1
年度积分:50
历史总积分:908
注册时间:2006/10/12
发站内信
发表于: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的其他时间我还不怎么会用,大虾帮我分析一下这是什么原因?

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003