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

问题描述 投票:0回答:1

我想将SIM800L V2.0与Arduino Nano一起使用以发送SMS。

我使用带密码的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)

所以,您有什么想法解决此铅问题吗?

at-command
1个回答
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>
© www.soinside.com 2019 - 2024. All rights reserved.