您现在所在的是:

串口通信

回帖:2个,阅读:2499 [上一页] [1] [下一页]
938
yiyix
文章数:13
年度积分:50
历史总积分:938
注册时间:2006/6/10
发站内信
发表于:2006/6/17 8:58:00
#0楼
要求:用VB编写程序,采集电子数显千分表的数据,放入list1中,以备处理。

数显表的接口参数:波特率 4800,数据位8位,无奇偶校检,1位停止位,以ACSII 码传送数据,

可能要每隔几秒采集一次数据。数显表的专用接口线与计算机RS232(9针)连接。

 问题:用下面这个程序运行没反应或者全是0,怎么延时?怎么放数据到list中?
 
由于刚接触VB,下面这个程序是拼凑起来的,可能很离谱,希望帮忙改正。

Dim receive_data(1 To 20) As Byte
Private Sub Command1_Click()
For i = 1 To 20
List1.AddItem Val(receive_data(i))
Next i
End Sub '把采集到的数据放入list1中

Private Sub Command2_Click()
MSComm1.PortOpen = flase
End
End Sub '结束

Private Sub MSComm1_OnComm()
Dim InBuffer As Valiant
Select Case MSComml.CommEvent
Case comEvReceive
Do Until MSComml.InBuffeiCount <> 0
Ret = DoEvents()
Loop
InBuffer = MSComml.Input
receive_data = InBuffer
End Select
End Sub

Private Sub Form_Load()
MSComm1.PortOpen = True
MSComm1.CommPort = 1
MSComm1.Settings = "4800,n,8,1"
MSComm1.InBufferSize = 40
MSComm1.InputMode = comInputModeBinary
MSComm1.InputLen = 1
MSComm1.InBufferCount = 0
End Sub
www.robotain.com,机器与智能网做专业的机器人网站
908
030110412
文章数:4
年度积分:50
历史总积分:908
注册时间:2007/4/14
发站内信
发表于:2007/4/15 10:59:00
#1楼
我也想解决这方面的问题,哪位高手可以指点一下。我将不胜感激!!!
1922
周长锁
文章数:312
年度积分:53
历史总积分:1922
注册时间:2006/4/29
发站内信
08年优秀博客奖
发表于:2007/4/15 15:40:00
#2楼
MSComm1.PortOpen = True
MSComm1.CommPort = 1
顺序反了,应先指定端口号再打开

MSComm1.InputMode = comInputModeBinary
用于接收16进制数据,接收ACSII 码时  MSComm1.InputMode = comInputModeText

不清楚电子数显千分表的通信协议,一般情况下是VB先向设备发读取数据命令,延时接收设备返回的数据,以上编程没体现出VB发送数据,应该得不到返回数据。

欢迎光临我的BLOG

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

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

46.8003