谁有利用VB的Mscomm控件进行实时通讯(有接收和发送)的例子?哪位大佬帮帮偶~!谢谢啦

yecf2288 2007-12-21 02:06:14
Private Sub Command4_Click()

MSComml.CommPort = 4 '设定Com4
If MSComml.PortOpen = False Then
MSComm1.Settings = "9600,n,8,1" '9600波特率,无校验,8位数据位,1位停止位
MSComm1.PortOpen = True '打开串口
End If
MSComm1.OutBufferCount = 0 '清空发送缓冲区
MSComm1.InBufferCount = 0 '滑空接收缓冲区

'发送字符数据时用回车符(vbcr)结束
MSComm1.Output = "text1.text" & vbCr

'拨号发送AT命令
'MSComm1.Output = "ATDT 075525937253 , & vbCr"

'定义ByteArray赋值
Dim ByteArray() As Byte

'定义动态数组
ReDim ByteArray(1)

'重定义数组大小
ByteArray(0) = 0
ByteArray(1) = 1
MSComm1.Output = ByteArray
End Sub





Private Sub MScommEvent()
Select Case MSComm1.CommEvent
Case comEvReceive
Dim Buffer As Variant
MSComm1.InputLen = Text2.Text
'接收二进制数据
MSComm1.InputMode = comInputModeBinary
Buffer = MSComm1.Input
'接收字符数据
MSComm1.InputMode = comInputModeText
Buffer = MSComml.Input
Case Else
End Select

End Sub
...全文
333 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
yecf2288 2008-01-07
  • 打赏
  • 举报
回复
zdingyun大侠,一不小心给点错了,本是给了分你的.实在抱歉
yecf2288 2007-12-26
  • 打赏
  • 举报
回复
用代码测试过,也用SSCOM32测试过,都确认可用的
yecf2288 2007-12-26
  • 打赏
  • 举报
回复
COM4是可用的.
tingting1123 2007-12-26
  • 打赏
  • 举报
回复
楼主的代码?
zdingyun 2007-12-26
  • 打赏
  • 举报
回复
将Command4_Click代码用我发表于:2007-12-26 11:09:19的答贴代码,调试是否有错
此外,可能你主板的COM4口存在问题。
再用我发表于:2007-12-25 20:06:13的代码检查COM4口是否能用。
yecf2288 2007-12-26
  • 打赏
  • 举报
回复
MSComm1.PortOpen = True '打开串口

提示的错误是:Run-time error'8005':
port already open

这是用SSCOM32打开了串口的运行错误

如果不打开就是这句错误;
MSComm1.CommPort = 4 '设定Com4


提示的错误是:Run-time error'8005':
port already open

从没写过这东西,搞不懂
sungine 2007-12-26
  • 打赏
  • 举报
回复
我的经验就是 用那个Com口,就把控件名叫做Com几
fengliuke 2007-12-26
  • 打赏
  • 举报
回复
这个代码是做什么的啊?
有什么作用啊!
zdingyun 2007-12-26
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
MSComm1.CommPort = 4 '设定Com4
If MSComm1.PortOpen = False Then '打开串口
MSComm1.Settings = "9600,n,8,1" '9600波特率,无校验,8位数据位,1位停止位
MSComm1.PortOpen = True
End If
MSComm1.OutBufferCount = 0 '清空发送缓冲区
MSComm1.InBufferCount = 0 '滑空接收缓冲区
'发送字符数据时用回车符(vbcr)结束
MSComm1.Output = Text1.Text & vbCr
'定义ByteArray赋值
Dim ByteArray() As Byte
'定义动态数组
ReDim ByteArray(1)
'重定义数组大小
ByteArray(0) = 0
ByteArray(1) = 1
MSComm1.Output = ByteArray
MSComm1.PortOpen = False
End Sub
zdingyun 2007-12-26
  • 打赏
  • 举报
回复
MSComm1.PortOpen = True '打开串口

汗~现在是这儿出错

是何出错号?
yecf2288 2007-12-26
  • 打赏
  • 举报
回复
MSComm1.PortOpen = True '打开串口

汗~现在是这儿出错
yecf2288 2007-12-26
  • 打赏
  • 举报
回复
还是不行,我的计算机上只有COM4一个串口可用,不用检测了的.
yecf2288 2007-12-26
  • 打赏
  • 举报
回复
谢谢各位,谢谢zdingyun的热情解答
yecf2288 2007-12-25
  • 打赏
  • 举报
回复
XP专业版
zdingyun 2007-12-25
  • 打赏
  • 举报
回复
WIDOWS系统是哪个版本。
yecf2288 2007-12-25
  • 打赏
  • 举报
回复
你们有没有这方面的例子,我参照下,就知道自己写的问题出在哪儿了.
yecf2288 2007-12-25
  • 打赏
  • 举报
回复
我这儿是指定了COM4串口的,是可用的
zdingyun 2007-12-25
  • 打赏
  • 举报
回复
你打开设备管理器查看是否有COM4,或用如下代码查看可用串口号:

Option Explicit
Dim a As Integer
Private Sub Command1_Click()
On Error GoTo uerror
For a = 1 To 4
MSComm1.CommPort = a
MSComm1.PortOpen = True
Print "可用Com号= "; a
MSComm1.PortOpen = False
Next
Exit Sub
uerror:
Print "出错Com号= "; a
End Sub
yecf2288 2007-12-25
  • 打赏
  • 举报
回复
调试时提示MSComml.CommPort=4 '设定Com4 错误!

我的邮箱:ye2288@163.com
yecf2288 2007-12-25
  • 打赏
  • 举报
回复
汗~还真是,谢谢了,明天到公司后改改!!!咋犯了这么低级的错误,弄半天还没检查出来错误.真该打!狂汗.....
加载更多回复(11)

1,453

社区成员

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

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