我正在使用传真调制解调器来获取一个字符串中的电话号码。我试图在串行端口发送一个命令。我使用下面的代码:当发送命令到串行端口它不工作
private static string PhoneNumber;
private SerialPort mySerialPort;
private void Form1_Load(object sender, EventArgs e)
{
mySerialPort = new SerialPort("COM3");
mySerialPort.BaudRate = 115200;
mySerialPort.Parity = Parity.None;
mySerialPort.StopBits = StopBits.One;
mySerialPort.DataBits = 8;
mySerialPort.Handshake = Handshake.None;
mySerialPort.Open();
mySerialPort.WriteLine("at#cid=1");//It doesnt recognise this line
mySerialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
}
private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
messageBox.Show(indata);
}
我没有采取任何错误,但问题是,我键入它的命令不起作用。通常情况下,如果它能工作,它会给我的电话号码,现在它不显示任何东西。
如果我将在超级终端中键入此命令,它工作正常!所以我想我的代码有些问题。
是串口是否正确?你需要添加错误处理吗?设备是否正确插入?你有正确的波特率,奇偶校验,停止位等吗? –
在发送任何命令之前附加到'DataReceived'事件 –
您可能需要在命令末尾添加'\ n',大多数串行接口使用换行符来告诉命令何时完成 –