| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 401 人关注过本帖
标题:数组不能正确读取数据,怎么回事呢?
只看楼主 加入收藏
雪狼君
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-9-25
收藏
 问题点数:0 回复次数:7 
数组不能正确读取数据,怎么回事呢?

---begind
/****************这是数据类************/
private byte[] testw;//写
public byte[] testr;//读


//发送数据
public short SetParameter(byte addr, byte value, byte ReaderAddr)
{
short result = -1;
try
{
this.testw = new byte[8];
this.testw[0] = 0xAA;
this.testw[1] = ReaderAddr;
this.testw[2] = 5;
this.testw[3] = CMD.PID_GET_PARAMETER;
this.testw[5] = addr;
this.testw[6] = value;
this.testw[this.testw.Length - 1] = this.Last(this.testw);
this.spt.Write(this.testw, 0, this.testw.Length);//串口自身的方法发送数据
result = 0;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return result;
}

//由 DataReceived 事件接收数据
private void spt_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
this.spt.BaseStream.Flush();
int j = this.spt.BytesToRead;
testr = new byte[j];
this.spt.Read(testr, 0, j);//把数据读入数组中
this.spt.BaseStream.Flush();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
this.spt.BaseStream.Close();
}
}


/****************这是测试类************/
byte[] test;
UserControl1 uc = new UserControl1(); //把上面的数据类创建对象,下面调用方法
private void button2_Click(object sender, EventArgs e)
{
try
{
short k = 0;
k = uc.DrfCommOpen("COM1"); //这是打开串口的方法,已经成功
if (k == 0)
{
k = uc.SetParameter(0xC1, 20, 0xFF);//这个是问题的所在
if (k == 0)
{
test = testr; //把数据类的数组传给本类的数组
this.label2.Text = "";
foreach (byte rr in test)
{
this.label2.Text += rr.ToString() + " ";
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
---end

前提,所有硬件都正常连接并工作。
可是有一个很奇怪的问题,串口监测工具(如AccessPort、串口调试助手等)明明显示有数据返回,也就是说数据类的testr数组已经存有数据了,可是测试类的test数组接收的东西却不相符,具体情况是这样的,第1次点击按钮时,引发异常数组超出下标,第2次点击按钮才读到正确的东西,也就是说要点击2次按钮才能得到数据,这样的现象不正常。请问高手该如何解决此问题,第一次接触串口的开发,请诸位多指教。

搜索更多相关主题的帖子: 数据 
2007-10-11 09:53
雪狼君
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-9-25
收藏
得分:0 
快点来些高手说话啊,会急死人的!!!
2007-10-11 09:54
雪狼君
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-9-25
收藏
得分:0 

怎么没有高人帮帮我的?
2007-10-13 16:35
雪狼君
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-9-25
收藏
得分:0 

有没串行高手的啊,快点出来说说话吧!
2007-10-13 16:36
rareliu
Rank: 2
等 级:论坛游民
帖 子:44
专家分:28
注 册:2007-10-13
收藏
得分:0 
本人菜鸟,没人来顶顶……
还是我来给你顶一下吧!
不懂串行……

2007-10-13 18:19
炮炮兵
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-9-21
收藏
得分:0 

呵呵 看不懂啊`~~~~~~~~~~~

2007-10-13 23:58
雪狼君
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-9-25
收藏
得分:0 
2007-10-15 09:32
fangchengli
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2007-1-18
收藏
得分:0 

哈哈,真的不懂,帮顶

2007-10-15 10:29
快速回复:数组不能正确读取数据,怎么回事呢?
数据加载中...
 
   



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

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