当前位置: 代码迷 >> C# >> .Net串口开发(SerialPort)发数据时惟独关闭串口对象时另一台设备才能得到数据
  详细解决方案

.Net串口开发(SerialPort)发数据时惟独关闭串口对象时另一台设备才能得到数据

热度:196   发布时间:2016-05-05 04:45:25.0
.Net串口开发(SerialPort)发数据时只有关闭串口对象时另一台设备才能得到数据
本帖最后由 zyslh 于 2015-02-27 09:46:30 编辑
近期做一串口项目,向串口设备发数据时,只有关闭串口对象后,设备才能接到数据,请问是什么原因?发数据程序如下:
        //串口对象创建
        SerialPort sp= new SerialPort (“COM1” , 9600, Parity.None , 8 );
          if (sp.IsOpen)
          {
              sp.Close();
          }
          try
          {
              //sp.Encoding = System.Text.Encoding.ASCII;
              sp.NewLine = "/r/n";
              sp.ReceivedBytesThreshold = 1;
              sp.Handshake = Handshake.RequestToSend;
              sp.Parity = Parity.None;
              sp.ReadTimeout = 500;
              sp.WriteTimeout = 500;
              sp.RtsEnable = true;
              sp.DtrEnable = true;
              sp.Open();
          }
          catch
          {
              //MessageBox.Show(ex.ToString());  
          }  
说明:sp串口对象,_senddata,要发送的byte数组数据。
sp.Write(_senddata, 0, _senddata.Length);

只有当:sp.close()了另一台电脑的串口调试助手才能得到数据。为什么不能实时发送数据呢?先谢谢了!
环境:.Net4.0
------解决思路----------------------
换个串口助手试试, 从代码上没看出什么问题
------解决思路----------------------
你怎么读的数据?是不是接收方readline了,但是发送方没发送换行?