Cold RESET IC卡,拿到ATR之后,发送一个命令给IC卡
/*要发送到IC卡的命令,以及命令长度*/
uint8_t g_cmd1buf[] = {0x00, 0xA4, 0x00, 0x00, 0x02, 0xDF, 0x01};
uint32_t g_cmd1len = 7;
void SC2_Test()
{
SC2_Init();
/* 等待卡插入,如果没有卡检测引脚,该函数将马上返回 */
while(SC_IsCardInserted(SC2) == FALSE);
// 发送Activate Timing到slot 2
retval = SCLIB_ActivateDelay(2, FALSE, 33);/* 如果PWR上电之后,需要比较久的时间稳定,用这个函数传入额
外的等待时间,33个ETU */
/* 成功拿到ATR */
if(retval == SCLIB_SUCCESS) {
/* 打印ATR的内容 */
SCLIB_GetCardInfo(2, &s_info);
printf("ATR: ");
for(i = 0; i < s_info.ATR_Len; i++)
printf("%02x ", s_info.ATR_Buf[i]);
printf("\n");
/* 发送命令给IC卡 */
SCLIB_StartTransmission(2, g_cmd1buf, g_cmd1len, g_cmdrsp, &g_cmd1rsplen);
printf("get response\n");
/* 打印响应的结果 */
for(i = 0; i < g_cmd1rsplen; i++)
printf("%02x ", g_cmdrsp[i]);
printf("\n");
}
}
|