没有使用AT命令从GSM调制解调器获得响应

时间:2013-03-06 19:39:32

标签: .net c#-4.0 serial-port gsm at-command

我在c#中学习AT命令。

public static void Main(string[] args)
    {

        String command = "AT";
        SerialPort serialPort = new SerialPort
                                    {
                                        PortName = "COM4",
                                        BaudRate = 9600,
                                        DataBits = 8,
                                        Parity = Parity.None,
                                        ReadTimeout = 300,
                                        WriteTimeout = 300,
                                        StopBits = StopBits.One,
                                        Handshake = Handshake.None
                                    };
        serialPort.Open();
        serialPort.WriteLine(command + "\r");
        String outPut = serialPort.ReadExisting();

        Console.WriteLine(outPut);


    }

我确定 PortName 。我在程序中做错了什么?

提前致谢:)

1 个答案:

答案 0 :(得分:0)

很难判断这是否是您唯一的问题,但SerialPort.ReadExisting()只能读取立即可用的数据(即在流和缓冲区中)。

您的程序将数据写入调制解调器,并立即调用ReadExisting()。 <{1}}将立即返回,没有可用的数据,因为调制解调器没有时间做出响应。