如何用C#的serialport类接收单片机发送的数据

为什麽下面的程序只能实现 发送数据而不能接收??、请问还有其他方法实现接收数据嘛/?若有好的建议请上传程序并写上注释。。谢谢

 private void button1_Click(object sender, EventArgs e)
        {

            SerialPort serialPort1 = new SerialPort();
            serialPort1.PortName = "COM3";
            serialPort1.BaudRate = 9600;
            serialPort1.Parity = Parity.Odd;
            serialPort1.StopBits = StopBits.Two; 
            serialPort1.ReadTimeout = 1000; //读超时
            if (serialPort1.IsOpen == false)
                serialPort1.Open();
          
            serialPort1.WriteLine(textBox1.Text);
            serialPort1.Close();//多次输入
            MessageBox.Show("数据发送成功!", "系统提示");
        }
private void button2_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen == false)
                serialPort1.Open();
            textBox2.Text = serialPort1.ReadLine().ToString ();           
        }


/// <summary>

        /// 读取返回数据

        /// </summary>

        /// <returns></returns>

        private string Read()

        {

            //获得返回数据

            string Return = "";

            string ShowReturn = "";  //显示的命令

            try

            {

                Thread.Sleep(100);


                int len = this.serialPort1.BytesToRead;

                if (len > 0)

                {

                    byte[] data = new byte[len];

                    if (len > 0)

                    {

                        for (int i = 0; i < len; i++)

                            data[i] = (byte)this.serialPort1.ReadByte();

                    }

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

                    {

                        if (data[i] == 0)

                        {

                            Return += "00";

                            ShowReturn += "00" + " ";

                        }

                        else if (data[i] < 16)

                        {

                            Return += "0" + Convert.ToString(data[i], 16);

                            ShowReturn += "0" + Convert.ToString(data[i], 16) + " ";

                        }

                        else

                        {

                            Return += Convert.ToString(data[i], 16);

                            ShowReturn += Convert.ToString(data[i], 16) + " ";

                        }

                    }

                }

                else

                {

                    Return = "未接受到返回数据";

                }

            }

            catch (Exception ex)

            {

                Return = ex.Message;

            }

            this.txtMessage.AppendText(ShowReturn + "\r\n");

            return Return.ToUpper();

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值