private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) 
{ string rshuju ; rshuju=this.serialPort1.ReadLine(); 
this.richTextBox1.Text += rshuju; 
if (this.richTextBox1.Text.Length > 100000000) 

this.richTextBox1.Clear(); 


rshuju=this.serialPort1.ReadLine();这一句有什么问题吗?

解决方案 »

  1.   

    编译会出错吧,大侠?应该这样:} 
    rshuju=this.serialPort1.ReadLine();这一句有什么问题吗?
    }而不是这样:


    rshuju=this.serialPort1.ReadLine();这一句有什么问题吗?你的代码不懂,帮你up,虽然没分。
      

  2.   

    楼上的你理解错了,我的程序是这样的
    private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) 
    { string rshuju ; rshuju=this.serialPort1.ReadLine(); 
    this.richTextBox1.Text += rshuju; 
    if (this.richTextBox1.Text.Length > 100000000) 

    this.richTextBox1.Clear(); 


    我接收不到数据,问你是不是这句rshuju=this.serialPort1.ReadLine()有什么问题?程序执行到这句就出错了,什么原因?
      

  3.   

    汗...我确是理解错了...泪奔...你加上一句:
    this.serialPort1.ReadTimeout = 1000;
    在你的rshuju = this.seriaoPort1.ReadLine()之前可能是数据没过来,然后你可以catch(TimeoutExecption)看看,是否是超时的原因。
      

  4.   

    3楼你这方法还是不行,我做调试向串口发数据时,接收只执行到rshuju=this.serialPort1.ReadLine()这个语句时会出现
    IOException这种异常,现在不懂该如何处理,谢谢,再帮我看看
      

  5.   

    补充下,我做调试时程序只能执行到rshuju=this.serialPort1.ReadLine()这个语句,后面的语句就执行不了了,这是为什么?请高手赐教
      

  6.   

     try
                {
                        byte[] buffer = new byte[this.serialPort1.BytesToRead];
                        if (this.serialPort1.BytesToRead > 0)
                        {
                            this.serialPort1.Read(buffer, 0, buffer.Length);                        if (this.checkBox2.Checked)
                            {
                                string txt = chshex.hextostr(buffer);
                                print(txt);
                                receive = txt.Length+ receive;
                                this.toolStripStatusLabel4.Text = receive.ToString();
                            }
                            if (!this.checkBox2.Checked)
                            {                            string txt = ConvertByteArrayToString(buffer);
                                print(txt);
                                receive = txt.Length * 2 + receive;
                                this.toolStripStatusLabel4.Text = receive.ToString();
                            }
                        }
                }
                catch (Exception exp)
                {
                    MessageBox.Show(exp.ToString());
                }