vb串口编程怎么弄

qinjinxtu 2008-09-24 08:20:12
我买了台带串口的机器,附带一个测试小程序,现在想把控制功能整合到另外一个程序中,我发现vb中有个mscomm的控件,用这个可以做吗,怎么做呢
...全文
2555 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
caxax 2010-08-28
  • 打赏
  • 举报
回复
曾经是那么酷爱vb,为了压缩程序大小,冥思苦想数据结构
lixinli0613 2010-08-28
  • 打赏
  • 举报
回复
有哪为能够提供串口通信的控件,MsComm32.ocx,连同注册文件一起。多谢了
fq618 2010-08-27
  • 打赏
  • 举报
回复
我是VB本家
目前正在做围棋人工智能10段,解决世界巅峰难题

想进入更高手,更高高手行列的加我

QQ:37918751
Mobile:13582426162
lliiyingbo 2010-08-27
  • 打赏
  • 举报
回复
3楼的代码中应再增加.RThreshold=1
ldy_216 2010-05-18
  • 打赏
  • 举报
回复
我是VB专家
目前正在做围棋人工智能9段,解决世界巅峰难题

想进入高手,高高手行列的加我

QQ:184324486
Mobile:13693481232
cnuser1 2010-05-13
  • 打赏
  • 举报
回复
到我的空间上去下载
fenghuolunmm 2010-05-04
  • 打赏
  • 举报
回复
还行吧!
you_123 2008-11-06
  • 打赏
  • 举报
回复
来学习一下,正在学习VB
maxiaohui123 2008-11-06
  • 打赏
  • 举报
回复
我也是刚开始学VB,听别人说好学。。。。
flymarco 2008-09-24
  • 打赏
  • 举报
回复
呵呵.这个我知道.正好最近在写这个东东.
给你一段我写的CODE吧.

首先定义COM口的连接,
------------------------
先说下控件属性
CommPort 设置并返回通讯端口号。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。
Input 从接收缓冲区返回和删除字符。
Output 向传输缓冲区写一个字符串。
------------------------
COM口连接和打开.
Private Sub Form_Load()
With MSComm1
.CommPort = 3 '定义COM口
.Settings = "9600,n,8,1" '"BBBB,P,D,S"BBBB 为波特率,P 为奇偶校验,D 为数据位数,S 为停止位数
.InBufferCount = 0 '清除输入缓存
.OutBufferCount = 0 '清除输入缓存
.InputMode = comInputModeText '数据接收方式
.InputLen=1 '定义在接收多少个字节后触发OnComm事件,这个很重要.如果这个数值过大.接收的数据不够的话.是不会触发OnComm事件的.而数据只会存到下面的数据缓存中
.InBufferSize = 20 '数据缓存大小
If .PortOpen = False Then '判断COM口是否打开.如果未打开就打开它.如果出错就弹出错误代码
.PortOpen = True
If Err.Number Then
MsgBox "Cann't connect to COM3,The Error No. is" & Err.Number
Exit Sub
End If
End If
End With
End Sub
-------------------------------
发送数据
Private Sub Command1_Click() '定义一个按钮
If MSComm1.PortOpen = False Then '判断COM口是否打开
MsgBox "串口未打开!"
Exit Sub
End If
MSComm1.Output = "要发送的数据" & vbCr '发送数据.记得要用&VBCR结束.(也就是回车)
END SUB
--------------------------------
接收数据
Private Sub mscomm1_OnComm() 'OnComm事件.当接收到的数据到InputLen的大小后就会触发这个事件
Dim code1 As String '定义一个数组.接收缓存中的数据
With MSComm1
Select Case .CommEvent '事件状态.
Case comEvReceive '当MSCOMM1.COMMEVENT的值为COMEVRECEIVE时(也就是为接收状态时,我不知道是不是可以这样理解).就把缓存中的数据存到CODE1里,
code1 = .Input
Text1.Text = Text1.Text & vbCrLf & code1 '打印数据
End Select
End With
End Sub
--------------------------------
完了...
这是我前两天写的一个小程序测试用的.
如果你觉得这些写得不够清楚的话.顺便给点参考资料:
http://dev.yesky.com/347/2636847.shtml
我就是看这写的.

顺便说一句.我是新手...
--------------------------------
第一次回别人的技术贴.给点分吧啊...

打死不掉牙 2008-09-24
  • 打赏
  • 举报
回复
vb的mscomm完成串口通信是一点问题都没有的,硬件上连接对,协议对了就OK了!
zdingyun 2008-09-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 qinjinxtu 的帖子:]
我买了台带串口的机器,附带一个测试小程序,现在想把控制功能整合到另外一个程序中,我发现vb中有个mscomm的控件,用这个可以做吗,怎么做呢
[/Quote]
需有带串口的机器的通信协议,利用MsComm的控件通过串口与下位机通信。
flymarco 2008-09-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 flymarco 的回复:]
呵呵.这个我知道.正好最近在写这个东东.
给你一段我写的CODE吧.

首先定义COM口的连接,
------------------------
先说下控件属性
CommPort 设置并返回通讯端口号。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。
Input 从接收缓冲区返回和删除字符。
Output 向传输缓冲区写一个字符串。
------------------------
COM口连接和打…
[/Quote]

好象写错了点.INPUTLEN不是触发OnComm的条件.而是.Rthreshold.在这里面没有设置.参见
http://dev.yesky.com/347/2636847.shtml

1,451

社区成员

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

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