GPRS模块死机的问题

liangchaoxi 2011-12-09 12:04:18
用MSP5438单片机 给GPRS模块SIM508 发AT指令拨号上网,我们的程序是:每条命令发送间隔是3s钟,发一条命令后,如果模块返回OK或者其他期望的返回,则直接发下一条指令,如果没有收到OK或者其他期望的返回,则重复发该命令。重发5次之后,如果还没有收到OK或者其他期望的返回,怎用下面的程序,软件重启。但是现在经常遇到这样的情况,就是GPSR会死机,对AT指令无返回,然后软件重启也无法重启。断电重启之后,才恢复正常。
请问这是什么情况? 有人知道吗?


void GSM_Reset(void)
{

P2DIR|=BIT4 ; //P2.4输出
P2DS|=BIT4 ; //P2.4全力驱动

P2OUT&=~BIT4; //P2.4输出高电平
__delay_cycles(20000000); //延时>120ms
P2OUT |=BIT4; //P2.4输出低电平
__delay_cycles(20000000); //延时> 120ms
P2OUT&=~BIT4; //P2.4输出高电平

GSMState = 0; //重启后,
GSM_Connect_Status = 0; //处于系统初始上电状态
GSM_Retry_Time = 0; //初始化次数清零
GSM_Cycle_Count = GSM_Cycle;

}
...全文
361 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
bandaoyu 2012-07-16
  • 打赏
  • 举报
回复
需要按规定的流程发AT指令,如果模块没有回应就继续狂发就容易造成死机
wo707254607 2012-04-27
  • 打赏
  • 举报
回复
你接串口小助手也会出现这个问题吗?试了吗?如果也死机那就是模块的毛病,可以换其他家的模块,如果不想换的话可以再GPRS供电模块芯片上把使能端解出来,实现硬复位
shinerise 2011-12-15
  • 打赏
  • 举报
回复
如果是必现的问题,就很好解决了。直接给模块厂家打电话,因为模块厂家应该有NAS层的源代码,可以直接对模块处理AT命令的流程进行debug。
liangchaoxi 2011-12-14
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 shinerise 的回复:]
你确定是GPRS模块死机了?也可能模块已经建立了socket连接,这时你发送的任何命令都只是简单的由GPRS路由出去了,不会知道你发送的东西是AT命令。
[/Quote]
确定是死机了的,因为我的AT指令第一步 ATE0 就没有回复了,一直在发ATE0,ATE0,ATE0,ATE0……发了无限次都没有回应。

另外告诉大家一个现象,就是时间上我的GPRS模块基本上是在发 ATE0 这一步就死掉了,也就是软件重启之后的第一条命令死掉的。
shinerise 2011-12-14
  • 打赏
  • 举报
回复
你确定是GPRS模块死机了?也可能模块已经建立了socket连接,这时你发送的任何命令都只是简单的由GPRS路由出去了,不会知道你发送的东西是AT命令。
当我遇上-你 2011-12-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 liangchaoxi 的回复:]
用MSP5438单片机 给GPRS模块SIM508 发AT指令拨号上网,我们的程序是:每条命令发送间隔是3s钟,发一条命令后,如果模块返回OK或者其他期望的返回,则直接发下一条指令,如果没有收到OK或者其他期望的返回,则重复发该命令。重发5次之后,如果还没有收到OK或者其他期望的返回,怎用下面的程序,软件重启。但是现在经常遇到这样的情况,就是GPSR会死机,对AT指令无返回,然后软件重启也无法重启……
[/Quote]
GPRS模块对电源的要求很高,如果在软件没问题的情况下,可以检查下电源
liangchaoxi 2011-12-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ppz2007 的回复:]
断电重起
[/Quote]
那知道是什么原因引起的吗,这样我们尽量避免会引起它死机的操作,保证它正常工作,毕竟断电重启不是最好的方法,因为其他程序还在正常运行
liangchaoxi 2011-12-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ffeige1984 的回复:]
几乎所有的GPRS模块都由这问题,解决办法是断电重启。
[/Quote]
那知道是什么原因引起的吗,找到问题是最关键的,这样我们尽量避免会引起它死机的操作,保证它正常工作
ppz 2011-12-14
  • 打赏
  • 举报
回复
断电重起
forch 2011-12-13
  • 打赏
  • 举报
回复
你看看手册,我记得软件重启的时间不只120ms的
ffeige1984 2011-12-13
  • 打赏
  • 举报
回复
几乎所有的GPRS模块都由这问题,解决办法是断电重启。
liangchaoxi 2011-12-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 forch 的回复:]
你看看手册,我记得软件重启的时间不只120ms的
[/Quote]我这里重启的也不止120ms,接近1秒,因为主系统时钟的频率是25MHZ

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧