串口input不能获取到返回值

2000killer 2005-09-17 12:41:11
串口初始化(MSCOMM ocx)
If com.PortOpen Then com.PortOpen = False
com.CommPort = 3
com.Settings = "9600,n,8,1"
com.InputLen = 0
com.InputMode = comInputModeText
com.RThreshold = 1
com.PortOpen = True

发送指令
'正常的话,发送at 返回一个ok
com.Output = "AT" & vbCrLf

Private Sub com_OnComm()
Select Case com.CommEvent
Case comEvReceive
txt_Result.Text = com.Input
End Select
End Sub

我发送了at指令后(其他指令也一样),好象并没有触发com_OnComm事件,我判断了com.InputLen = 0
我在自己的笔记本上一切都正常,但换到pc机就没有返回结果.用串口调试助手也都正常
问题在那里呢,还请各位帮我看看?
...全文
158 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
懵懂天使 2005-09-17
  • 打赏
  • 举报
回复
首先你必须知道串口收到的数据的格式和类型,文本筐不是什么都能显示出来的!建议你先定义一个字节型的变量和一个字符型的变量:
Dim A() as byte
Dim B as string
A=com.Input
B=A(0)
txt_Result.Text=B
你不妨试试看!
2000killer 2005-09-17
  • 打赏
  • 举报
回复
com.Output = "AT" & vbCrLf
sleep 1000
txt_Result.Text = com.Input

com.input应该返回"ok"还是"atok"呢?
我现在是没值
2000killer 2005-09-17
  • 打赏
  • 举报
回复
对超级终端可以连上.
com.CommPort = 3
com.Settings = "9600,n,8,1"
com.InputLen = 0
com.InputMode = comInputModeText
com.RThreshold = 1
com.PortOpen = True
参数就这些,有什么不对的地方吗? 超级终端的我采用默认设置.
byeshuang 2005-09-17
  • 打赏
  • 举报
回复
就是说用超级终端可以连上,发命令at也会返回ok?

那就检查一下代码的com初始化的参数设置和超级终端的参数设置是否一样
别的再自己单步执行看看哪里有问题吧
2000killer 2005-09-17
  • 打赏
  • 举报
回复
问题是这样的,程序执行完了AT指令后,在用超级终端打开,立刻就能显示出我执行的AT指令,并且返回值是OK.
hnnipc 2005-09-17
  • 打赏
  • 举报
回复
是不是没有连接设备
2000killer 2005-09-17
  • 打赏
  • 举报
回复
有的com3啊
byeshuang 2005-09-17
  • 打赏
  • 举报
回复
是不是串口号的事呀?pc机上有com3吗?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧