地磅仪表读取数据

View Code
private static SerialPort serialPort1 = new SerialPort();//创建

SerialPort 对象
        private void Form1_Load(object sender, EventArgs e)
        {
            LoadMeter();
        }
        private void timer1_Tick(object sender, EventArgs e)//timer控

件事件
        {
            string strRead = serialPort1.ReadExisting();
            String strChar = "";
            if (strRead != string.Empty || !"".Equals(strRead))
            {
                try
                {
                    strChar = strRead.Substring(strRead.IndexOf

((Char)Convert.ToInt32("0002", 16)), strRead.LastIndexOf((Char)

Convert.ToInt32("0003", 16)) - strRead.IndexOf((Char)Convert.ToInt32

("0002", 16)));
                }
                catch (Exception) 
                { 
                    //不处理
                }
            }

            if (strChar.Length > 0)
            {
                string[] array = strChar.Split((Char)Convert.ToInt32

("0003", 16));

                double[] doublePyte = new double[array.Length];

                for (int i = 0; i < doublePyte.Length; i++)
                {

                    string str1 = array[i].Substring(1, 8);

                    string str2 = str1.Insert(5, ".");

                    doublePyte[i] = Convert.ToDouble(str2);
                    label1.Text = doublePyte[i].ToString().Substring

(0, doublePyte[i].ToString().Length-1);//给label1赋值
                }

            }
             
        }
        private void LoadMeter()//加载时设置COM参数(load)
        {
            string[] portNames = SerialPort.GetPortNames();
            if (portNames.Length > 0)
            {
                serialPort1.PortName = "COM1";
                serialPort1.BaudRate = 1200;
                serialPort1.Parity = 0;
                serialPort1.StopBits = StopBits.One;
                try
                {
                    serialPort1.Open();
                }
                catch(Exception)
                {
                    //...
                }
            }
            else
            {
                MessageBox.Show("没打开COM");
            }
        }
        /// <summary>
        /// 设置timer可用属性
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        }
原文地址:https://www.cnblogs.com/muruiqing/p/2513635.html