AT命令:文本模式选择无效

时间:2019-09-20 15:01:36

标签: at-command

我想在Arduino Nano上使用SIM800L V2.0来发送短信。

我使用带密码的SIM卡。我想通过Arduino IDE的串行接口执行这些AT命令:

at+cpin="xxxx"
at+cmgf=1
AT+CMGS="+33xxxxxxxxx"
my message to sent through SMS<CTRL+Z>

我被上一条命令挡住了。我不知道为什么。

我使用此代码与sim800l通信:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); 

void setup() {
  Serial.begin(9600);
  mySerial.begin(9600);
}

void loop() {
  if (mySerial.available())
    Serial.write(mySerial.read());

  if (Serial.available()) {
    while(Serial.available())
      mySerial.write(Serial.read());

    mySerial.println();
  }
}

at + cmgf = 1且AT + CMGS =“ ...”返回“ ERROR”

所以,我试图获取网络连接状态:

at+cops?
+COPS: 0

而且,我试图获取所有可用网络的列表:

at+cops=?
+COPS: (1,"Orange F","Orange","20801"),(1,"BOUYGUES TELECOM","BYTEL","20820"),(2,"SFR","SFR","20810"),,(0-4),(0-2)

那么,您有解决此问题的任何想法吗?

1 个答案:

答案 0 :(得分:0)

我将为您提供一些一般性提示。

1)设备已注册吗? -通过发出AT+CREG?命令

进行检查
AT+CREG?
+CREG: 0,N

OK

如果N = 1,则您的设备已注册到家庭网络。如果N = 5,则说明您已注册漫游。其他N值表示注册由于某种原因正在进行或失败。

2)是否设置了服务中心地址?这对于MO SMS传输是必需的。 -通过发出AT+CSCA=<number>[,<type>]?命令进行设置

AT+CSCA="+"+33xxxxxxxxx",145
OK

<number>是您的操作员的SC; <type>允许您在国家编号方案(129)和国际编号方案(145)之间进行选择。

3)在调试阶段,通过AT+CMEE=2?命令切换到详细错误模式,尝试了解错误原因。然后重复命令序列

AT+CMEE=2

OK
AT+CMGS="+33xxxxxxxxx"
> Your text<CTRL+Z>

+CME ERROR: <verbose error>