无法理解AT命令响应

问题描述 投票:0回答:1

我正在使用我的MULTIBAND 900E 1800 WAVECOM MODEM。我使用.Net C#创建了一个项目,通过AT-Command与我的调制解调器进行通信。但我没有从调制解调器获得任何人类可读的响应。回应就像那样 -

'P&ØPP&ØĐPØØPØØþRÏĐÿÔ'

我无法解码响应,以便我能理解。

我试过通过改变串口编码使用:

  • port.Encoding = Encoding.ASCII;
  • port.Encoding = Encoding.UTF8;
  • port.Encoding = Encoding.GetEncoding(“ISO-8859-1”);

使用不同的编码,响应会发生变化,但仍然是不可读的字符。

此外,我试过改变CSCS:

  • AT + CSCS = GSM
  • AT + CSCS = UCS2
  • AT + CSCS = HEX
  • AT + CSCS = “8859-1”

使用不同的CSCS,响应会发生变化,但仍然是不可读的字符。

  port = new SerialPort(SERIAL_PORT_NAME)
  {
    BaudRate = 9600,
    DataBits = 8,
    Parity = Parity.None,
    StopBits = StopBits.One
  };
  port.Parity = Parity.None;
  port.ReadTimeout = 300;
  port.WriteTimeout = 300;
  //port.Encoding = Encoding.UTF8;
  //port.Encoding = Encoding.GetEncoding("ISO-8859-1");
  port.DtrEnable = true;
  port.RtsEnable = true;
  port.Open();

  //port.WriteLine("AT+CSCS=GSM");
  //response = port.ReadExisting();
  port.WriteLine("AT");
  response = port.ReadExisting();

如果我写AT调制解调器应该响应OK。当我尝试使用https://m2msupport.net/m2msupport/ussd-how-to-send-ussd-short-codes-with-at-command/测试我的调制解调器时,这正好发生了。但是我发现使用.Net制作的每个应用程序或示例代码都有相同的问题。

c# gsm at-command modem
1个回答
0
投票

据我所知,你可以使用一个公共终端发送AT命令(它是否正确?)但你没有以编程方式进行。

我可以回答一些问题:1)波特率是否正确? 9600是一种不常见的波特率。通常使用115200 2)注意硬件流量控制。在AT接口中,它通常被禁用。无论如何,程序中的设置必须与调制解调器中的设置相匹配

在代码中选择设置之前,请确认(1)和(2)终端。

3)AT命令实际上在char(ASCII 0x0D)之后发送到解析器。你确定“WriteLine”被终止了吗?可能使用“Port.Write(”AT \ r“)”将是一个更好的选择。

© www.soinside.com 2019 - 2024. All rights reserved.