【问题标题】:AT command : text mode selection doesn't workAT 命令:文本模式选择不起作用
【发布时间】:2020-01-21 15:52:27
【问题描述】:

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

我使用带有密码的 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+CMGS="+33xxxxxxxxx" 后刷新输出缓冲区。发送此命令后,您能否验证是否从调制解调器看到了&gt; 提示?查看来自调制解调器的OK&gt; 提示响应很重要。

标签: at-command


【解决方案1】:

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

1) 设备是否已注册? - 通过发出AT+CREG? 命令检查它

AT+CREG?
+CREG: 0,N

OK

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

2) 是否设置了服务中心地址? MO SMS 传输是强制性的。 - 通过发出AT+CSCA=&lt;number&gt;[,&lt;type&gt;]? 命令设置它

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

&lt;number&gt; 是您的运营商的 SC; &lt;type&gt; 允许您在国家编号方案 (129) 和国际编号方案 (145) 之间进行选择。

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

AT+CMEE=2

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

+CME ERROR: <verbose error>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多