Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
arduino gsm屏蔽错误0_Arduino_Embedded_Microcontroller - Fatal编程技术网

arduino gsm屏蔽错误0

arduino gsm屏蔽错误0,arduino,embedded,microcontroller,Arduino,Embedded,Microcontroller,我一直在尝试使用arduino微控制器和gsm屏蔽发送一条简单的消息,但它总是收到一个错误0 代码如下: int8\t答案; int-onModulePin=2; 字符辅助字符串[20]; 字符电话号码[]=“**********”; 无效设置(){ pinMode(onModulePin,输出); 序列号开始(115200); Serial.println(“开始…”); 开机(); 延迟(3000); //设置PIN码 sendATcommand(“AT+CPIN=****”,“确定”,20

我一直在尝试使用arduino微控制器和gsm屏蔽发送一条简单的消息,但它总是收到一个错误0

代码如下:

int8\t答案;
int-onModulePin=2;
字符辅助字符串[20];
字符电话号码[]=“**********”;
无效设置(){
pinMode(onModulePin,输出);
序列号开始(115200);
Serial.println(“开始…”);
开机();
延迟(3000);
//设置PIN码
sendATcommand(“AT+CPIN=****”,“确定”,2000年);
延迟(3000);
Serial.println(“连接到网络…”);
而((sendATcommand(“AT+CREG?”,“+CREG:0,1,500”)| | sendATcommand(“AT+CREG?”,“+CREG:0,5,500”)==0);
串行打印(“设置短信模式…”);
sendATcommand(“AT+CMGF=1”,“OK”,1000);//将SMS模式设置为文本
Serial.println(“发送短信”);
sprintf(辅助字符串,“AT+CMGS=\%s\”,电话号码);
answer=sendATcommand(aux_字符串,“>”,2000);//发送短信号码
如果(答案=1)
{
Serial.println(“Test Arduino Hello World”);
串行写入(0x1A);
应答=sendATcommand(“,”确定“,”20000);
如果(答案=1)
{
连续打印(“已发送”);
}
其他的
{
串行打印(“错误”);
}
}
其他的
{
串行打印(“错误”);
序列号。打印号(答案,12月);
}
}
void循环(){
}
无效电源开启(){
uint8_t answer=0;
//检查模块是否已启动
答案=sendATcommand(“AT”,“OK”,2000);
如果(答案=0)
{
//通电脉冲
数字写入(onModulePin,高);
延迟(3000);
数字写入(onModulePin,低电平);
//等待模块的答复
while(answer==0){//每两秒钟发送一次,然后等待答案
答案=sendATcommand(“AT”,“OK”,2000);
}
}
}
int8\u t sendATcommand(char*ATcommand,char*expected\u response,unsigned int timeout){
uint8_t x=0,答案=0;
字符响应[100];
长前未签名;
memset(响应'\0',100);//初始化字符串
延迟(100);
while(Serial.available()>0)Serial.read();//清除输入缓冲区
Serial.println(ATcommand);//发送AT命令
x=0;
上一个=毫秒();
//这个循环等待答案
做{
如果(Serial.available()!=0){//如果UART输入缓冲区中有数据,则读取它并检查asnwer
响应[x]=Serial.read();
x++;
if(strstr(response,expected_answer)!=NULL)//检查所需答案是否在模块的响应中
{
答案=1;
}
}
}while((answer==0)&&((millis()-previous)
在上述代码中,将*******替换为9xxxxyyyy(Sim卡号码/手机号码)

然后以上述波特率启动串行监视器(如上述代码中的115200)

char phone_number[]="*********";
char phone_number[]="*********";