GPRS模块死机的问题
用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;
}
[解决办法]