首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GSM Sim300响应未在atmega16中接收

GSM Sim300响应未在atmega16中接收
EN

Stack Overflow用户
提问于 2014-03-13 18:03:45
回答 1查看 194关注 0票数 0

我在Sim300上工作,试图通过串行通信在atmega16上接收短信。当我从我的手机向*23#调制解调器发送“\r\n+CMGR:\s”短信时,gsm在串口上发送“\r\n+CMGR:\s”recs\r\n*23#\r\n\r\nOK\r\n“、"+919762148043”、“14/03/13 23:04:32+22”\r\n*23#\r\n\r\nOK\r\n作为响应。我是在atmega16上得到这些数据的,但是只有“\r\n+CMGR:\s”rec-s*23#“”,"+919762148043",“14/03/13”,23:04:32+22“\r”,在这里,“*23#”是我的实际短信,我对"23“很感兴趣。我的固件看起来像这样,

代码语言:javascript
运行
复制
while(Serial.available())
  {
    char tempChar = Serial.read();
    if(tempChar == '+')
    {
      isPreSms = true;
      lcd.print('+');
    }
    else if((tempChar == '\r') && (isPreSms == true))
    {
      isPreSms = false;
      lcd.print('r');
    }
    else if(tempChar == '*')
    {
      digitalWrite(OKLed, HIGH);
      isSms = true;
      lcd.print('*');
    }
    else if((tempChar == '#') && (isSms == true))
    {
      digitalWrite(powerLed, HIGH);
      isSms = false;
      lcd.print(sms);
    }
    else if(isSms)
    {
      digitalWrite(alertLed, HIGH);
      sms += tempChar;
    }
  }
  lcd.print('@');
}

我期待"+++r*23@“作为液晶显示器的输出。我已经检查过了,它接收'+‘以及'\r’而不是'*‘和更远。我被困在这里了,请帮帮忙,出什么事了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-10 14:11:30

现在我解决了。串行缓冲区的大小存在问题。我把它的大小增加到了128个字节,现在它可以正常工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22387169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档