照着写的  串口是虚拟串口com1  为啥不能接收.
按钮点击
sting st1=text1.text;
serialport1.write(st1);
timer事件 已经设置为true
string st2=serialport.readexising();
text2.text=st2:

解决方案 »

  1.   

    额,虚拟串口是虚拟的,他是一对儿,你不能拆了。也就是如果你虚拟的是“com1”和“com2”一对儿那么就是com1发的com2收,你想com1接就用串口工具在com2发ps:下载串口调试工具,用串口调试工具连上另外一边(比如com2,如果你虚拟配置的com1和com2一对的话),在串口调试工具里看
      

  2.   

    检车下 波特率是否符合你的COM 接入的设备。
      

  3.   

    串口接收事件写了吗
     private void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
    }
      

  4.   

    你得用调试工具打开另一个虚拟串口,来发送数据,并且得用ASC码来发送。 简单写了一下,收发会有乱码。        private void button1_Click(object sender, EventArgs e)
            {
                string strName;
                if (button1.Text == "打  开")
                {
                    strName = cboCmd.Text.Trim();
                    sp = new SerialPort(strName);        
                    sp.Open();
                    timer1.Start();
                    button1.Text = "关  闭";
                }
                else
                {
                    if (sp.IsOpen) sp.Close();
                    timer1.Stop();
                    button1.Text = "打  开";
                }
            }        private void timer1_Tick(object sender, EventArgs e)
            {
                string strRead = "";
                strRead = sp.ReadExisting();
                richTextBox1.AppendText(strRead);
            }        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (sp.IsOpen) sp.Close();
                timer1.Stop();
            }        private void button2_Click(object sender, EventArgs e)
            {
                string str1 = textBox1.Text.Trim();
                sp.Write(str1);
            }
      

  5.   

    虚拟串口是成对的gay,不分公母。
    物理串口是成对的mate,分公母。