溜溜丶 发表于 2016-4-28 20:11:38

关于sim900A的接收短信的问题

以下是代码部分。。。。。。
(本人玩arduino属于民科,没有经过专业学习)







#define SERIAL_TX_BUFFER_SIZE 128
#define SERIAL_RX_BUFFER_SIZE 128

#include <Arduino.h>
#include <String.h>
boolean haveSMS = false;
void setup()
{
Serial.begin(9600);
Serial.println("AT");
delay(500);
Serial.println("AT+CMGDA=6");
delay(500);
Serial.flush();
delay(100);
Set_Message();
}

void loop(){
checkSMS();
if(haveSMS) {
    haveSMS = false;
    Read_Message();
}
}
void checkSMS(){
String inStr1="";
while (Serial.available()>0){
    char inChar1=Serial.read();
    inStr1 += (char)inChar1;
    delay(2);
}
if(inStr1.indexOf("+CMTI")!=-1){
    haveSMS = true;
}
}

void Read_Message(){
Serial.print("AT+CMGR=1\r\n");
int i = 0;
for( ; i < 100; ++i) {
   delay(4000);
   if(Serial.available( ) ) break;
}
if( ! Serial.available( ) ) {
    Serial.println("Time outwhen try A_T_+_C_M_G_R=1");
}
String inString="";
while (Serial.available()>0){
    char inChar=Serial.read();
    inString += (char)inChar;
    delay(2);
}
if (inString!="")
{
    Serial.println(inString);
}
Serial.println("AT+CMGD=1, 4");//向串口写清空短信的命令
delay(500);
Serial.flush();
delay(100);
}
void Set_Message(){
Serial.print("AT+CMGF=1\r\n");
Serial.print("AT+CNMI=2,1\r\n");
}

结果可以显示发送人的号码,和发送的时间,但是发送的内容没有出来!
求解决。。。


touchmii 发表于 2016-4-30 09:45:19

我也有这个模块,没有时间玩

ruan2570406 发表于 2016-5-6 11:33:30

直接把模块接串口,然后通过串口调试发AT命令能读出来么?
页: [1]
查看完整版本: 关于sim900A的接收短信的问题