串行端口WriteLine有时会失败
本文关键字:失败 WriteLine 串行端口 | 更新日期: 2023-09-27 17:58:45
我写了一个简单的程序,通过串行端口发送AT命令。我听从了指示MSDN示例
串行端口(38400,N,8,1(
serialPort1.PortName = "COM" + "5";// textBox1.Text;
try
{
if (!(serialPort1.IsOpen))
serialPort1.Open();
// if (listBox1.SelectedIndex == 0 || listBox1.SelectedIndex == 1)
serialPort1.WriteLine("atrst");
// else
// serialPort1.WriteLine("araprst");
serialPort1.Close();
}
catch (Exception ex)
{
MessageBox.Show("Error opening/writing to serial port :: " + ex.Message, "Error!");
Application.Exit();
}
当我使用WriteLine命令时,有时AT命令不会发送到端口。知道为什么吗?,有没有办法知道WriteLine(String(失败了?
您所描述的内容有几个原因,MSDN文章也有一些。。。有趣的密码从你的代码片段中,我可以看到你没有正确设置串行端口,所以我将发布一个工作示例,使用你给出的设置,并希望它能有所帮助。
serialPort = new SerialPort(
"COM5", // port name
38400, // baud rate
Parity.None, // parity
8, // bits
StopBits.One // stop bits
);
serialPort.Handshake = Handshake.None;
serialPort.WriteTimeout = 500;
serialPort.Open();
serialPort.Write("atrst");
serialPort.Close();
这是一种非常简单的方法,不包括错误处理,但它适用于具有给定设置的串行设备。除非握手是错误的,考虑到高波特率,这是很可能的,你应该调查一下。