为什么我在 C# 中使用 "at command " 时出错,但该命令在超级终端中是否正常工作?



这是我在C#中的代码:

string pdu=SubmitPdu.GetPdu("destNumber","Message","ServiceNumber");
SerialPort comport = new SerialPort();
comport.PortName = "com21";
comport.BaudRate = 921600;
comport.Parity = Parity.None;
comport.StopBits = StopBits.One;
comport.DataBits = 8;
comport.ReadBufferSize = 10000;
comport.ReadTimeout = 1000;
comport.WriteBufferSize = 10000;
comport.WriteTimeout = 1000;
comport.RtsEnable = true;
if (!comport.IsOpen)
comport.Open();
comport.DiscardInBuffer();
comport.DiscardOutBuffer();
comport.WriteLine("AT");
System.Threading.Thread.Sleep(1000);
comport.WriteLine("AT+CMGF=0" + (char)13);
System.Threading.Thread.Sleep(1000);
string s2 = "AT+CMGS=" + SubmitPdu.GetLenPdu(pdu);
comport.WriteLine(s2 + (char)13);
System.Threading.Thread.Sleep(1000);
comport.WriteLine(pdu + (char)26 );
System.Threading.Thread.Sleep(5000);
MessageBox.Show(comport.ReadExisting());
comport.Close();

结果是:

at

确定

at cmgf = 0

确定

at cmgs = 15

>0691891901500011000 ********************** 000A70178-

错误

但是,当在超级终端中使用此命令时,每个事情都可以:

at

确定

at cmgf = 0

确定

at cmgs = 15

>069189190150001100 ************************** 000A70178-

cmgs:139

确定

错误在哪里?

谢谢所有

我更改了.writeline用.write Just just并删除线程延迟并解决了问题。谢谢所有

最新更新