无法从Arduino向特定号码发送呼叫

无法从Arduino向特定号码发送呼叫,arduino,gsm,at-command,Arduino,Gsm,At Command,我正在使用Arduino UNO和SIM900A模块进行基于GSM+Arduino的通信。我使用以下代码呼叫特定号码,但什么也没发生 void setup() { Serial.begin(9600); delay(10000); } void loop() { Serial.println("ATDTxxxxxxxxxx;"); //where xxxxxxxxxx is a 10 digit mobile number delay(30000); // wait 20 seco

我正在使用Arduino UNO和SIM900A模块进行基于GSM+Arduino的通信。我使用以下代码呼叫特定号码,但什么也没发生

void setup()
{ 
 Serial.begin(9600);
 delay(10000); 
}
void loop()
{
 Serial.println("ATDTxxxxxxxxxx;"); //where xxxxxxxxxx is  a 10 digit mobile number
 delay(30000); // wait 20 seconds.
 Serial.println("ATH"); // end call
 do // remove this loop at your peril
 { 
 delay(1); 
 }
 while (1>0);
}
鉴于当我使用ATDTXXXXXXXXX时;在minicom中,当与SIM900A模块通信时,我能够呼叫(因为ATDxxxxxxxxxx没有给出载波错误,所以我使用“;”)。发送消息时,Similr就是这种情况。我在使用时收到“+CMS错误:302”

AT+ CMGF=1 
AT+CMGS="Mobno." //after this i get the error.

我无法通过minicom+SIM900A GSM模块发送消息,我想用Arduino进行测试。我想我的SIM卡或任一模块的设置有问题。我甚至尝试重置SIM卡的设置,但没有成功。

首先:从未,切勿使用延迟而不是通过解析调制解调器给出的实际响应来正确等待。您必须读回调制解调器给出的响应,并等待最终结果代码,然后再继续执行下一个命令。有关更多详细信息,请参阅和(特别是关于正确的
AT+CMGS
处理)


所有CMS错误的列表在
3.2.5消息服务故障结果代码+CMS错误
一节中定义。您的订阅是否允许发送短信(最有可能,但请确保选中此项。使用插入另一部手机的sim卡测试发送短信)?您使用的是什么邮件存储?您确定gsm模块支持文本模式吗?

我只需使用以下代码即可解决问题:

void setup()
{ 
  Serial.begin(9600);
  delay(10000); 
}
void loop()
{
  Serial.println("ATD+60148266823;"); //where xxxxxxxxxx is  a 10 digit mobile number
  delay(30000); // wait 20 seconds.
  Serial.println("ATH"); // end call
  do // remove this loop at your peril
  { 
    delay(1); 
  } while (1>0);
}

尝试按照教程中的信息操作,同时注意模块上的LED闪烁代码。谷歌“SIM900A arduino”如需更多信息,请解释答案,以便提问者可以从中学习。考虑基于嵌套级别来缩进代码,这样更容易读取,请尽量避免将代码倾倒为答案并尝试解释它所做的和为什么。对于没有相关编码经验的人来说,您的代码可能并不明显。
void setup(){ 
    Serial.begin(9600); 
} 
void loop(){
    Serial.println("AT");
    delay(500);
    Serial.print("ATD");
    Serial.println("99XXXXXXX8;");
    delay(20000);
    Serial.println("ATH");
}