为什么C#串行端口不能与AT + CGSN一起使用

时间:2019-02-11 14:17:22

标签: c# serial-port at-command

我正在尝试获取Samsung S7设备的IMEI。我通过AT+CGSNPutty进行了尝试,效果很好。当我使用C#尝试相同时,SerialPort返回空字符串。

在C#SerialPort上发送AT \ r \ n并按预期提供“ OK”,并且除此以外,所有其他AT命令也可以正常工作

对于我来说有点奇怪,为什么它不适用于其他人正在使用的特定命令。

这里是样本。

  private static string GetMobileSerialNumber(string PortName)
    {
        string Serial = "";
        SerialPort serialPort = new SerialPort();
        serialPort.PortName = PortName;
        serialPort.BaudRate = 154200;
        serialPort.Handshake = Handshake.None;
        serialPort.ReadBufferSize = 16384;         
        try
        {
            if (!(serialPort.IsOpen))
                serialPort.Open();               
            serialPort.Write("AT+CGSN\r\n");
            Thread.Sleep(1000);
            Serial = serialPort.ReadExisting();



            serialPort.Close();

            Console.WriteLine(Serial);

            return Serial;
        }
        catch (Exception ex)
        {
            //MessageBox.Show("Error in opening/writing to serial port :: " + ex.Message, "Error!");
            return "";
        }
    }

也提供样品here

1 个答案:

答案 0 :(得分:0)

PuTTY和Teraterm相同的设置可以使用,但是基于c#的应用程序无法执行命令。什么是绝对解决方案。可能是编码错误