【问题标题】:How to proper configure Serial port for AT communication via GSM modem C# .NET如何通过 GSM 调制解调器 C# .NET 正确配置用于 AT 通信的串行端口
【发布时间】:2018-05-28 14:01:14
【问题描述】:

关键是我正在尝试借助 GSM 调制解调器发送 SMS 消息,但不知道如何正确配置串行端口。
下面的示例与连接到 COM 端口的三星 Galaxy S5 完美配合。

public class AtSmsSender
{
    private SerialPort _serialPort;

    public void SmsSend(string phoneNr, string messageText)
    {
        string portName = "COM3";
        int portBaudRate = 9600;

        _serialPort = new SerialPort(portName, portBaudRate);

        Thread.Sleep(200);

        _serialPort.Open();

        Thread.Sleep(200);

        _serialPort.Write("AT+CMGF=1\r");

        Thread.Sleep(200);

        _serialPort.Write("AT+CMGS=\"" + "+"+phoneNr + "\"\r\n");

        Thread.Sleep(200);

        _serialPort.Write(messageText + "\x1A");

        Thread.Sleep(200);

        _serialPort.Close();
    }
}

但是当我连接 GSM 调制解调器时,此代码停止发送 SMS,但仍可以通过终端发送。在终端中标记为 DTR 和 RTS,但我不知道这些选项中的问题。
也尝试过这种类型的配置,但它不起作用

 _serialPort = new SerialPort("COM3", 9600)
        {
            Parity = Parity.None,
            DataBits = 8,
            StopBits = StopBits.One,
            Handshake = Handshake.None,
            DtrEnable = true,
            WriteBufferSize = 1024
        };

【问题讨论】:

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


    【解决方案1】:

    问题在于波特率错误,因此更改后一切正常。 掌心

    _serialPort = new SerialPort("COM3", 115200)
        {
            Parity = Parity.None,
            DataBits = 8,
            StopBits = StopBits.One,
            Handshake = Handshake.None,
            DtrEnable = true,
            WriteBufferSize = 1024
        };
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多