基本信息
源码名称:C#串口连接电子秤并获取数据
源码大小:42.77M
文件格式:.rar
开发语言:C#
更新时间:2020-10-23
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 1 元 
   源码介绍


 private void initSerialPort()
        {
            try
            {
                // serialPort = new SerialPort(ConfigurationManager.AppSettings["ComPort"].ToString());
                serialPort = new SerialPort("COM1");
                serialPort.BaudRate = 9600;
                serialPort.Parity = Parity.None;
                serialPort.StopBits = StopBits.One;
                serialPort.DataBits = 8;
                serialPort.Handshake = Handshake.None;
                //serialPort.ReadTimeout = 3000;
                serialPort.ReceivedBytesThreshold = 1;
                serialPort.DataReceived = new SerialDataReceivedEventHandler(DataReceived);
                if (serialPort.IsOpen)
                {
                    serialPort.Close();
                }
                serialPort.Open();
                //isInitPort = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show("加载接口实例失败!");
            }
        }
 /// <summary>
        /// 监听串口数据线程
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            Thread.Sleep(500);//线程休眠500毫秒,方便接收串口的全部数据
            try
            {
                if (serialPort.IsOpen)
                {
                    byte[] readBuffer = new byte[serialPort.ReadBufferSize 1];
                    try
                    {
                        int count = serialPort.Read(readBuffer, 0, serialPort.ReadBufferSize);        //读取串口数据(监听)
                        String SerialIn = System.Text.Encoding.ASCII.GetString(readBuffer, 0, count);//将字节数组解码为字符串
                        if (count != 0)
                        {
                            //这里强调一下,线程里不可以直接对UI进行赋值,只能使用委托操作控件
                            this.BeginInvoke(new System.Threading.ThreadStart(delegate ()
                            {
                                richTextBox1.Text = "秤参数: " SerialIn;
                            }));

                        }
                    }
                    catch (TimeoutException) { }
                }
                else
                {
                    TimeSpan waitTime = new TimeSpan(0, 0, 0, 0, 50);
                    Thread.Sleep(waitTime);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }