求助(梦想家系列-SIM900 GSM 模块)默认代码无法上传

2018-03-162.1万
上网买了一个梦想家系列的通信模块,用源代码试下,结果出现了这个问题:
求助(梦想家系列-SIM900 GSM 模块)默认代码无法上传图1
我是完整复制过来的
求助(梦想家系列-SIM900 GSM 模块)默认代码无法上传图2
这个代码是不认还是有问题,求看下
[mw_shl_code=cpp,true]//////////////////////////////////////////////////////////////////
//            SIM900 GSM/GPRS模块驱动
//模块使用7.5V电源供电,在测试时必须插入SIM卡
//////////////////////////////////////////////////////////////////

#include <Wire.h>

#define  GprsPWR     37    //模块电源开关信号,处理器输出高电平会导致模块拉低PWRKEY来开启和关闭模块。 用户可以通过 拉低PWERKEY 保持至少1秒然后释放来开启和关闭模块。
#define  GprsNRST    2    //外部复位控制脚,处理器控制信号给高电平,导致模块管脚复位低电平复位。
#define  GprsSTATUS  10   //模块状态输出管脚,低电平:模块掉电,高电平:模块在工作状态,模块电源开关或者模块复位后至少需要等待2.5秒后才能检查STATUS管脚状态。


////////////////////////////////////////////////////////////////////////////////////
//函数原型:  void GprsPWRkey(void)                                    
//参数说明:  无                                       
//返回值:    无                                                               
//说明:      GPRS模块开关机时序
///////////////////////////////////////////////////////////////////////////////////
void GprsPWRkey(void)
{
  digitalWrite(GprsPWR,HIGH);
  delay(1500);  //至少维持1秒钟
  digitalWrite(GprsPWR,LOW);
  delay(2500);  //等待2.5秒后,在去检测STATUS管脚,STATUS低电平:模块掉电,高电平:模块在工作状态
}

////////////////////////////////////////////////////////////////////////////////////
//函数原型:  void GprsReset(void)                                 
//参数说明:  无                                       
//返回值:    无                                                               
//说明:      GPRS模块复位时序
///////////////////////////////////////////////////////////////////////////////////
void GprsReset(void)
{
  digitalWrite(GprsNRST,HIGH);
  delayMicroseconds(50);  //至少50US复位信号
  digitalWrite(GprsNRST,LOW);
  delay(2500);  //等待2.5秒后,在去检测STATUS管脚,STATUS低电平:模块掉电,高电平:模块在工作状态
}

////////////////////////////////////////////////////////////////////////////////////
//函数原型:  void GprsInit(void)                                       
//参数说明:  无                                       
//返回值:    开机状态, 0:模块掉电  1:模块在工作状态                                                         
//说明:      GPRS初始化
///////////////////////////////////////////////////////////////////////////////////
int GprsInit(void)
{
  int temp = 0;
  pinMode(GprsPWR,OUTPUT); //将各个控制IO设置为输出
  pinMode(GprsNRST,OUTPUT);  
  pinMode(GprsSTATUS,INPUT);
  Serial.begin(9600);      //使用serial 2 和 GPRS通信
  Serial2.begin(9600);      //使用serial 2 和 GPRS通信

  GprsReset();  //模块复位
  
  return temp;
}

////////////////////////////////////////////////////////////////////////////////////
//函数原型:  void GprsInit(void)                                       
//参数说明:  无                                       
//返回值:    无                                                         
//说明:      GPRS模块测试,打电话,在串口调试终端输入ATDxxxxx13800138000;回车换行 拨打电话
//           发送AT+CSQ回车换行 查询信号强度。在这里可以测试各种AT指令
///////////////////////////////////////////////////////////////////////////////////
void GprsTest(void)
{
   Serial2.print("A");  //发送一个大写字母A来同步GPRS模块的波特率  
  
          //发送短信
     Serial2.println("AT+CMGF=1");
     Serial.println("AT+CMGF=1");
     delay(1000);
     Serial2.println("AT+CMGS=\"13800138000\"");//xxx为电话号码
     Serial.println("AT+CMGS=\"13800138000\"");//xxx为电话号码
     delay(1000);
     Serial2.print("TEST");
     Serial.print("TEST");
     delay(1000);
     Serial2.write(26);
      Serial2.write(26);
      Serial2.println();
     delay(5000);

   // SMS to 10086 for Queky
     Serial2.println("AT+CMGS=\"10086\"");//xxx为电话号码
     Serial.println("AT+CMGS=\"10086\"");//xxx为电话号码
     delay(1000);
     Serial2.print("YE");
     Serial.print("YE");
     delay(1000);
     Serial2.write(26);
      Serial2.write(26);
      Serial2.println();

     while(1){
        if(Serial.available())  //读取 USB串口数据将数据发送给GPRS模块
       {
         char input = Serial.read();
        Serial2.print(input);
       }
       if( Serial2.available())  //接收 GPRS模块返回数据,将数据显示到USB串口终端
      {
        char input2 = Serial2.read();
        Serial.print(input2);
      }
     }
}


void setup()
{
    GprsPWRkey();
    GprsInit();
    delay(2000);
    //GprsReset();
   GprsTest();
}

void loop()
{

   
}

[/mw_shl_code]

帮忙,谢谢,不然买了不会用就尴尬了,我一介布衣..........

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(6)
1973742214
1973742214
作者
意思是,这个只能用MEGA驱动吗?
medivl
medivl
请选择板型为Arduino mega2560.
medivl
medivl
您好,板型请选择Arduino mega2560,如下图所示。
1973742214
1973742214
作者
来个人说一句呀,42个浏览,没一个人回
1973742214
1973742214
作者
回复Ash1
谢谢
Ash1
Ash1回复1973742214
我会转告我们技术支持,尽快帮您看一下这个问题
1973742214
1973742214
作者
板凳
1973742214
1973742214
作者
沙发
- 没有更多了 -