Private Sub Form_Load()
' 保存输入子串的缓冲区
'Dim Instring As String
Dim flag As Boolean
flag = False
' 使用 COM1。
MSComm1.CommPort = 1
' 19200 波特,无奇偶校验,8 位数据,一个停止位。
MSComm1.Settings = "19200,N,8,1"
' 当输入占用时,告诉控件读入整个缓冲区。
MSComm1.InputLen = 0
' 打开端口。
MSComm1.PortOpen = True
' 将 attention 命令送到调制解调器。
MSComm1.Output = "AT" & Chr$(13)
' 确保调制解调器以"OK"响应。
' 等待数据返回到串行端口。
Do
DoEvents
Buffer$ = Buffer$ + MSComm1.Input
If InStr(Buffer$, "OK" & vbCrLf) Then
flag = True
ElseIf InStr(Buffer$, "ERROR" & vbCr) Then
flag = False
End If
Loop Until flag = True
Label1.Caption = Buffer$
MSComm1.PortOpen = False
End Sub
' 保存输入子串的缓冲区
'Dim Instring As String
Dim flag As Boolean
flag = False
' 使用 COM1。
MSComm1.CommPort = 1
' 19200 波特,无奇偶校验,8 位数据,一个停止位。
MSComm1.Settings = "19200,N,8,1"
' 当输入占用时,告诉控件读入整个缓冲区。
MSComm1.InputLen = 0
' 打开端口。
MSComm1.PortOpen = True
' 将 attention 命令送到调制解调器。
MSComm1.Output = "AT" & Chr$(13)
' 确保调制解调器以"OK"响应。
' 等待数据返回到串行端口。
Do
DoEvents
Buffer$ = Buffer$ + MSComm1.Input
If InStr(Buffer$, "OK" & vbCrLf) Then
flag = True
ElseIf InStr(Buffer$, "ERROR" & vbCr) Then
flag = False
End If
Loop Until flag = True
Label1.Caption = Buffer$
MSComm1.PortOpen = False
End Sub
这样的情况我也遇到过,结果把"& vbCrLf"去掉就行了,原来字符串里面不是以他结尾的:)
顺便,看看串口通讯方面的书籍!
com 1 com 22---\ /--2 rxd
\/
/\
3---/ \--3 txd
5---------5 gnd然后串口设为硬件握手无 不要用上cts / rts 控制线
就可以到单机做实验了。
可能想让moden实现自己摘机或者是拔号.录音.什么的.怎么你们都想成什么了?晕倒.
楼主.我明白你的意思,也看了你的程序没有发现什么问题.
要不你先用超级终端连接试试,看行不行?
我用串口连接手机的时间试过.
楼主你需要设定下mscomm1的筏值, 将发送筏值设为1看看Buffer$ = buffer$ + MSComm1.Input
后面跟加上下面一句作调试看看结果怎么样?if oldbuffer$ <> buffer$ then
debug.print buffer$
oldbuffer$ = buffer$
endif
如果Mscomm1.InputMode=comInputModeText不行
试试改为MSComm1.InputMode =comInputModeBinary
dim tt as datett = Time + 5 '延迟5秒
Do
DoEvents
Buffer$ = Buffer$ + MSComm1.Input
If InStr(Buffer$, "OK" & vbCrLf) Then
flag = True
End If
if tt >= Timer then
msgbox "Modem 连接超时!"
exit do
end if
Loop Until flag = True另外,下面的代码没有必要:
ElseIf InStr(Buffer$, "ERROR" & vbCr) Then
flag = False
if Timer >= tt then
msgbox "Modem 连接超时!"
exit do
end if
MSComm1.Settings = "9600,N,8,1"
如果还不行,就看看你系统中连接modem的串口的参数设置
再次感谢各位的热心帮助,谢谢!!