首页 新闻 会员 周边 捐助

我提的问题好难吗?竟然没有人会?呜呜呜呜

0
[已解决问题] 解决于 2017-10-31 22:18

好难过,这不是我想要的。。。。。结果

结果

好难过,没有一个人回答。。。。。回答。

好了,言归正传,我的问题如下:

如何通过serialPort 接收2个字节的数据,并在textBox上显示出来呢?

    1)如何通过SerialPort组件接收 33H 34H这2组16进制数据呢?

     2)如何通过textBox 控件,把接收到的33H, 34H  在这个控件上显示出来呢?

绿绿山水的主页 绿绿山水 | 菜鸟二级 | 园豆:248
提问于:2017-10-31 17:35
< >
分享
最佳答案
1

你没给分,不悬赏哪行啊。呵呵呵,用虚拟串口工具发数据。自己一调试不是就会了

奖励园豆:5
数据酷软件 | 初学一级 |园豆:130 | 2017-10-31 17:55

 protected override void OnDataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            var serialPort = (SerialPort)sender;
            if (serialPort.BytesToRead <= 0)
            {
                line = string.Empty;
                return;
            }
            byte[] buffer = new byte[serialPort.BytesToRead];
            int numofbyte = serialPort.Read(buffer, 0, buffer.Length);
            if (numofbyte > 0)
            {              
                line += System.Text.Encoding.ASCII.GetString(buffer);
            }
            /*
            12 14:55:19.949 , 收到数据:[COM3]  [GS   0.2]
            12 14:55:19.958 , 收到数据:[COM3]  [737kg
            N]
            12 14:55:19.966 , 收到数据:[COM3]  [o.      ]
            12 14:55:19.977 , 收到数据:[COM3]  [  0
            Tot]
            12 14:55:19.985 , 收到数据:[COM3]  [al  0.00]
            12 14:55:19.994 , 收到数据:[COM3]  [00kg

            ]
            12 14:55:20.000 , 收到数据:[COM3]  [
            ]
            */
            //没有起始和截止符,一次通信会触发多次OnDataReceived,最后结束是只发送一个0D0A
            if (buffer.Length == 2 && buffer[0] == (byte)0x0D && buffer[1] == (byte)0x0A)
            {
                log(string.Format("收到数据:[{0}]  [{1}]", PortName, line));
                if (pool != null && pool.IsOpened == true)
                {
                    string weightData = line;
                    pool.Post(weightData);
                    line = string.Empty;
                }
            }
        }

数据酷软件 | 园豆:130 (初学一级) | 2017-10-31 17:56

@数据酷软件: 谢谢你,我感动得都哭了。

绿绿山水 | 园豆:248 (菜鸟二级) | 2017-10-31 22:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册