极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10665|回复: 2

关于sim900A的接收短信的问题

[复制链接]
发表于 2016-4-28 20:11:38 | 显示全部楼层 |阅读模式
以下是代码部分。。。。。。
(本人玩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 out  when 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");
}

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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2016-4-30 09:45:19 | 显示全部楼层
我也有这个模块,没有时间玩
回复 支持 反对

使用道具 举报

发表于 2016-5-6 11:33:30 | 显示全部楼层
直接把模块接串口,然后通过串口调试发AT命令能读出来么?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-20 19:36 , Processed in 0.042304 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表