重点是我试图在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
};
答案 0 :(得分:0)
问题是波特率错误,所以在更改之后一切正常。的捂脸强>
_serialPort = new SerialPort("COM3", 115200)
{
Parity = Parity.None,
DataBits = 8,
StopBits = StopBits.One,
Handshake = Handshake.None,
DtrEnable = true,
WriteBufferSize = 1024
};