When I am sending AT+WMFM=0,1,2 through UART1 to activate UART2,ERROR is comming in response.When I am giving The AT+WMFM? command
+WMFM: 0,2,1,1
+WMFM: 0,2,2,1
+WMFM: 1,2,4,0
+WMFM: 1,2,4,1
is shown as response.
I wrote an Embeded application with ADL(OAT v3.14) which displays
UART1 Is Available
UART2 Is Available
UART1 Is An AT Port
UART2 Is An AT Port
UART1 Is An FCM Port
UART2 Is An FCM Port
But I am not finding any way to use UART2 as a normal AT port.
Please help me with all required steps to access UART2.
void fcmDataH ( u16 DataLen, u8 * Data )
{
u8 result;
adl_atSendResponse(ADL_AT_UNS, "\r\n<- Receive FCM Data Blocks \r\n");
//DUMP ( 1, Data, DataLen );
}
void fcmCtrlH(adl_fcmEvent_e event)
{if(event=ADL_FCM_EVENT_FLOW_OPENNED)
adl_atSendResponse ( ADL_AT_RSP, "\r\nUART2 is Available\r\n" );
}
bool Res_WMFM1_Handler ( void )
{
return TRUE;
}
bool Res_IPR_Handler ( void )
{
return TRUE;
}
bool wind7(adl_atUnsolicited_t *p)
{adl_atUnSoUnSubscribe("+WIND: 7", (adl_atUnSoHandler_t)wind7);
adl_atSendResponse ( ADL_AT_RSP, "\r\nNetwork Is Now Available\r\n" );
return TRUE;
}
bool wind1(adl_atUnsolicited_t *p)
{adl_atUnSoUnSubscribe("+WIND: 1", (adl_atUnSoHandler_t)wind1);
adl_atSendResponse ( ADL_AT_RSP, "\r\nSIM Has Been Detected\r\n" );
return TRUE;
}
void adl_main ( adl_InitType_e InitType )
{
TRACE (( 1, "Embedded Application : Main" ));
adl_atUnSoSubscribe("+WIND: 7", (adl_atUnSoHandler_t)wind7);
adl_atUnSoSubscribe("+WIND: 1", (adl_atUnSoHandler_t)wind1);
///////////////Status Of UARTs///////////////////////////////
if(adl_fcmIsAvailable(ADL_PORT_UART1)==TRUE)
{adl_atSendResponse ( ADL_AT_RSP, "\r\nUART1 Is Available\r\n" );
}
else
{adl_atSendResponse ( ADL_AT_RSP, "\r\nUART1 Is Not Available\r\n" );
}
////////////////////
if(adl_fcmIsAvailable(ADL_PORT_UART2)==TRUE)
{adl_atSendResponse ( ADL_AT_RSP, "\r\nUART2 Is Available\r\n" );
//////////////////////////////////////////////////////////
adl_atCmdCreate( "AT+WMFM=0,1,2", FALSE, Res_WMFM1_Handler, "*", NULL );
adl_atCmdCreate( "AT+IPR=4800", ADL_AT_PORT_TYPE( ADL_AT_UART2, FALSE ), Res_IPR_Handler, "*", NULL );
///////////////////////////////////////////
adl_atCmdCreate( "AT+ICF=3,4", ADL_AT_PORT_TYPE( ADL_AT_UART2, FALSE), Res_IPR_Handler, "*", NULL );
adl_atCmdCreate( "AT+IFC=2,2", ADL_AT_PORT_TYPE( ADL_AT_UART2, FALSE), Res_IPR_Handler,"OK", NULL );
adl_atCmdCreate( "AT&W",TRUE, Res_IPR_Handler, "*", NULL );
/////////////////////////////////////////////
adl_fcmSubscribe( ADL_FCM_FLOW_V24_UART2,fcmCtrlH,fcmDataH);
///////////////////////////////////////////////////////////
adl_atSendResponse ( ADL_AT_PORT_TYPE(ADL_PORT_UART2,ADL_AT_UNS), "\r\nUART2 Is Available\r\n" );
}
else
{adl_atSendResponse ( ADL_AT_RSP, "\r\nUART2 Is Not Available\r\n" );
}
/////////////////////checking port for AT/////////////////
if(ADL_PORT_IS_AN_AT_PORT(ADL_PORT_UART1)==TRUE)
adl_atSendResponse ( ADL_AT_RSP, "\r\nUART1 Is An AT Port\r\n" );
else
adl_atSendResponse ( ADL_AT_RSP, "\r\nUART1 Is Not An AT Port\r\n" );
if(ADL_PORT_IS_AN_AT_PORT(ADL_PORT_UART2)==TRUE)
adl_atSendResponse ( ADL_AT_RSP, "\r\nUART2 Is An AT Port\r\n" );
else
adl_atSendResponse ( ADL_AT_RSP, "\r\nUART2 Is Not An AT Port\r\n" );
///////////////////checking port for FCM/////////////////
if(ADL_PORT_IS_AN_FCM_PORT(ADL_PORT_UART1)==TRUE)
adl_atSendResponse ( ADL_AT_RSP, "\r\nUART1 Is An FCM Port\r\n" );
else
adl_atSendResponse ( ADL_AT_RSP, "\r\nUART1 Is Not An FCM Port\r\n" );
if(ADL_PORT_IS_AN_FCM_PORT(ADL_PORT_UART2)==TRUE)
adl_atSendResponse ( ADL_AT_RSP, "\r\nUART2 Is An FCM Port\r\n" );
else
adl_atSendResponse ( ADL_AT_RSP, "\r\nUART2 Is Not An FCM Port\r\n" );
}////End of ADL-main
Moreover when I am trying to subsribe to the FCM service the module is giving
+CREG: 2
+CREG: 1,ā1B5Dā,ā3505ā
and there is no AT response in the hyperterminal connected to UART2.
Please help me to solve the problem.