标题:串口数据的提取? 困扰中,请帮忙啊
只看楼主
小年
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-11-21
结帖率:80%
已结贴  问题点数:15 回复次数:4 
串口数据的提取? 困扰中,请帮忙啊
请教:想把收到的最新的串口数据存到数组中,这个该怎么解决?这个是我做的,将NewData中的值赋给全局字符串str,发现会出问题,就是str = NewData.ToString();调试时发现 NewData中的数据并不是最新接到的数据,而是此时已经收到的全部数据,请问,我想收到最新收到的那些数据该怎么办?困扰好久了,多谢指教啊
public delegate void UpdateString(object NewData);
        public void UpdateRecevie(object NewData)
        {
            if (this.InvokeRequired)//等待异步
            {
                UpdateString _myInvoke = new UpdateString(UpdateRecevie);
                this.Invoke(_myInvoke, new object[] { NewData });
            }
            else
            {
                txtReceive.AppendText(NewData.ToString());
                txtReceive.SelectionStart = txtReceive.Text.Length - 1;
                txtReceive.ScrollToCaret();

               str = NewData.ToString();
               strCompare(str );
            }
        }
       private void strCompare(string str)
    {
        str0 = str;
        str1 = str0.Substring(0,5);
        str2 = str0.Substring(5,3);

        addtxt.Text = str1;
        temptxt.Text = str2;
    }
搜索更多相关主题的帖子: public 字符串 
2012-12-13 13:24
mmxo
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:13
帖 子:189
专家分:1090
注 册:2012-11-7
得分:15 
在你串口数据到达的那个处理方法中保存新的数据,然后就可以使用了

为提高中华编程水平而奋斗
2012-12-13 21:57
小年
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-11-21
得分:0 
回复 2楼 mmxo
哦,我看看,前几天有考试,没上论坛,不知道有回复了,谢谢啦
2012-12-18 09:35
小年
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-11-21
得分:0 
回复 2楼 mmxo
我的串口事件是这样的
private void ComDevice_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            if (AllowReceive == true)
            {
                byte[] ReDatas = new byte[ComDevice.BytesToRead];//返回命令包
                ComDevice.Read(ReDatas, 0, ReDatas.Length);//读取数据
               
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < ReDatas.Length; i++)
                {
                    sb.AppendFormat("{0:x2}" + " ", ReDatas[i]);
                }
                UpdateRecevie(sb.ToString().ToUpper());

               
            }
            else
            {
                ComDevice.DiscardInBuffer();
            }
        }
要怎么把最新数据存到数组呢?
2012-12-18 09:41
小年
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2012-11-21
得分:0 
回复 2楼 mmxo
这个问题已经解决了,谢谢啊
2012-12-18 21:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-391050-1-1.html




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

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