| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 727 人关注过本帖, 1 人收藏
标题:有关串口的问题 求助啊 程序如下
取消只看楼主 加入收藏
weishanhu03
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2007-4-24
收藏(1)
 问题点数:0 回复次数:1 
有关串口的问题 求助啊 程序如下
Dim buffer As Variant
Dim shi(10000) As Double
Dim shu(10000) As Double
Dim num As Integer
Private Sub Form_Load()
  = 4
 MSComm1.Settings = "9600,n,8,1"
' MSComm1.InputMode = comInputModeBinary
 MSComm1.InputMode = 1
 MSComm1.RThreshold = 1
 MSComm1.InputLen = 2 '读取缓冲区的两个字符,
 MSComm1.InBufferCount = 0
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Select Case
   Case comEvReceive
   buffer = MSComm1.Input
For i = LBound(buffer) To UBound(buffer)
Text1.Text = buffer(i)
Next i
shi(num) = buffer(0) + buffer(1) * 256
shu(num) = shi(num) * 2.5 / 65536
Text2.Text = shu(num)
num = num + 1
Case comEvSend
End Select
End Sub
 比如下位机发一个温度值,十六进制发送,每次发一个字节,分两次发送,先发低字节,再发送高字节,如要发送0X384B 则先发送4B再发38。显然得到的值是正确的。可是为什么每到num=510时就下标越界呢?大家帮忙看看怎么回事啊?比如我要接受一万个数据,即num能达到10000,怎么处理啊?不知道下标越界到底怎么回事
搜索更多相关主题的帖子: 串口 
2007-11-26 10:53
weishanhu03
Rank: 1
等 级:新手上路
帖 子:75
专家分:0
注 册:2007-4-24
收藏
得分:0 
我要获得的是十进制数据,所以进行了转换,可是为什么总是显示下标越界呢

2007-11-26 11:00
快速回复:有关串口的问题 求助啊 程序如下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018162 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved