近期做一串口项目,向串口设备发数据时,只有关闭串口对象后,设备才能接到数据,请问是什么原因?发数据程序如下:
//串口对象创建
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了,但是发送方没发送换行?