9104| 8
|
[求助] 求助(梦想家系列-SIM900 GSM 模块)默认代码无法上传 |
上网买了一个梦想家系列的通信模块,用源代码试下,结果出现了这个问题: 我是完整复制过来的 这个代码是不认还是有问题,求看下 [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] 帮忙,谢谢,不然买了不会用就尴尬了,我一介布衣.......... |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed