如何通过GSM调制解调器C#.NET正确配置AT通信的串口

时间:2018-05-28 14:01:15

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

重点是我试图在GSM调制解调器的帮助下发送短信,但不知道如何正确配置串口。
以下示例与我连接到COM端口的Samsung 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调制解调器时,此代码停止发送短信,同时仍然可以通过终端发送。终端标有DTR和RTS,但我不知道这些选项中的问题。
也试过这种类型的配置,但它不起作用

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

1 个答案:

答案 0 :(得分:0)

问题是波特率错误,所以在更改之后一切正常。的捂脸

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