【问题标题】:Unable to understand AT Command Response无法理解 AT 命令响应
【发布时间】:2019-04-02 18:19:42
【问题描述】:

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

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

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

我已经尝试通过使用以下方式更改串行端口编码:

  • port.Encoding = 编码.ASCII;

  • port.Encoding = Encoding.UTF8;

  • port.Encoding = Encoding.GetEncoding("ISO-8859-1");

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

此外,我尝试过更改 CSCS:

  • AT+CSCS=GSM

  • AT+CSCS=UCS2

  • AT+CSCS=十六进制

  • 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】:

    据我了解,您可以使用通用终端发送 AT 命令,但无法以编程方式发送。

    我的建议是以下清单:

    1. 验证您使用的波特率是否正确。 9600 是一种不常见的波特率。通常使用115200
    2. 注意硬件流量控制。在 AT 接口中,它通常被禁用。无论如何,您的程序中的设置必须与调制解调器中的设置相匹配

    在代码中选择您的设置之前,使用您的终端验证 (1) 和 (2)。

    1. AT 命令实际上是在<CR> char (ASCII 0x0D) 之后发送到解析器的。您确定WriteLine 是由<CR> 而不是<LF> 终止的吗?可能使用Port.Write("AT\r") 会是更好的选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-28
      • 1970-01-01
      • 2019-07-25
      • 1970-01-01
      • 2018-11-29
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      相关资源
      最近更新 更多