資源簡介
中興物聯(lián)ME3630(LCC)4G模組的驅(qū)動代碼,由狀態(tài)機配合撥號流程
代碼片段和文件信息
#include?“includes.h“
//ME3630通信狀態(tài)機
void?Me3630_Proc(void)
{
static u8?step?=?ME3630_ATE0retry?=?0;
u8?erri;
char?*stristr[6];?
static u8?me3630_count?=?0;
u16?tmp?=?0;
switch(step)
{
case?ME3630_RESTART_STEP_1:
{
PNM_RST_H();
PNM_POWER_H();
if(MyTimeDly(001200))
{
PNM_RST_L();
step?=?ME3630_RESTART_STEP_2;
}
break;
}
case?ME3630_RESTART_STEP_2:
{
if(MyTimeDly(0030500))
{
me3630_count?=?0;
retry?=?0;
step?=?ME3630_ATE0;
}
break;
}
case?ME3630_ATE0:
{
if(MyTimeDly(0020))
{
LcSysWork.csq?=?0;
strcpy((char?*)U2.tx_buf“ATE0\r\n“);
usart2_tx_start(U2.tx_bufstrlen((const?char?*)U2.tx_buf));
step?=?ME3630_ATE0_CHK;
}
break;
}
case?ME3630_ATE0_CHK:
{
MySemPend(&Usart2Sem3000&err);
if(err?==?0x01)
{
if(strstr((const?char?*)U2.rx_buf“OK“))
{
retry?=?0;
step?=?ME3630_CPIN;
}
else?
{
retry?+=?1;
step?=?ME3630_ATE0;
}
}
else?if(err?==?0x02)
{
retry?+=?1;
step?=?ME3630_ATE0;
}
if(retry?>?10)
{
step?=?ME3630_RESTART_STEP_1;
}
break;
}
case?ME3630_CPIN: //sim卡檢測
{
if(MyTimeDly(0020))
{
strcpy((char?*)U2.tx_buf“AT+CPIN?\r\n“);
usart2_tx_start(U2.tx_bufstrlen((const?char?*)U2.tx_buf));
step?=?ME3630_CPIN_CHK;
}
break;
}
case?ME3630_CPIN_CHK:
{
MySemPend(&Usart2Sem3000&err);
if(err?==?0x01)
{
if(strstr((const?char?*)U2.rx_buf“READY“))
{
retry?=?0;
step?=?ME3630_COPS_SET;
}
else?
{
retry?+=?1;
step?=?ME3630_CPIN;
}
}
else?if(err?==?0x02)
{
retry?+=?1;
step?=?ME3630_CPIN;
}
if(retry?>?3)
{
NetworkStatus?=?NET_CARD;
step?=?ME3630_ATE0;
}
break;
}
case?ME3630_COPS_SET://網(wǎng)絡(luò)選擇
{
if(MyTimeDly(0020))
{
if(Pnm.copsmode==1)//手動2G網(wǎng)絡(luò)
{
strcpy((char?*)U2.tx_buf“AT+COPS=0000\r\n“);
}
else?//自動
{
strcpy((char?*)U2.tx_buf“AT+COPS=0\r\n“);
}
usart2_tx_start(U2.tx_bufstrlen((const?char?*)U2.tx_buf));
step?=?ME3630_COPS_SET_CHK;
}
break;
}
case?ME3630_COPS_SET_CHK:
{
MySemPend(&Usart2Sem5000&err);
if(err?==?0x01)
{
if(strstr((const?char?*)U2.rx_buf“OK“))
{
retry?=?0;
NetworkStatus?=?NET_REGISTER;//1000ms閃!!!!
step?=?ME3630_CREG;
}
else?
{
retry?+=?1;
step?=?ME3630_COPS_SET;
}
}
else?if(err?==?0x02)
{
retry?+=?1;
step?=?ME3630_COPS_SET;
}
if(retry?>?3)
{
step?=?ME3630_ATE0;
}
break;
}
case?ME3630_CREG://網(wǎng)絡(luò)注冊
{
if(MyTimeDly(0020))
{
strcpy((char?*)U2.tx_buf“AT+CREG?\r\n“);
usart2_tx_start(U2.tx_bufstrlen((const?char?*)U2.tx_buf));
step=ME3630_CREG_CHK;
}
break;
}
case?ME3
評論
共有 條評論