/* Read Binary in IMSI ---------------------------------------------------*/
if(CHV1Status == 0x00)
{
if(((SC_Responce.SW1 << 8) | (SC_Responce.SW2)) == SC_OP_TERMINATED) //9000
{
// USART_SendData(USART1,0x13);
// delay1(2);
/* Enable CHV1 (PIN1) ------------------------------------------------*/ //CHV1Status=0x00,进到这里来
SC_ADPU.Header.CLA = SC_CLA_GSM11; //A0
SC_ADPU.Header.INS = SC_ENABLE; //28
SC_ADPU.Header.P1 = 0x00;
SC_ADPU.Header.P2 = 0x01;
SC_ADPU.Body.LC = 0x08;
for(i = 0; i < SC_ADPU.Body.LC; i++)
{
SC_ADPU.Body.Data = CHV1;
// USART_SendData(USART1,SC_ADPU.Body.Data); //30 30 30 30 30 30 30 30
// delay1(2);
}
while(i < LC_MAX)
{
SC_ADPU.Body.Data[i++] = 0;
}
SC_ADPU.Body.LE = 0;
SC_Handler(&SCState, &SC_ADPU, &SC_Responce);
}
}
else
{
if(((SC_Responce.SW1 << 8) | (SC_Responce.SW2)) == SC_OP_TERMINATED)
{
/* Verify CHV1 (PIN1) ------------------------------------------------*/
SC_ADPU.Header.CLA = SC_CLA_GSM11;
SC_ADPU.Header.INS = SC_VERIFY;
SC_ADPU.Header.P1 = 0x00;
SC_ADPU.Header.P2 = 0x01;
SC_ADPU.Body.LC = 0x08;
for(i = 0; i < SC_ADPU.Body.LC; i++)
{
SC_ADPU.Body.Data = CHV1;
}
while(i < LC_MAX)
{
SC_ADPU.Body.Data[i++] = 0;
}
SC_ADPU.Body.LE = 0;
SC_Handler(&SCState, &SC_ADPU, &SC_Responce);
}
}
得到的SW1=0x98,SW2=0x40,是什么意思呢?手册上没查到,往下进行不下去了。高手支招!谢谢!
|