主题中讨论的其他器件:MSP-EXP430G2ET
您好,
我使用 TRF7970ABP_RFID_Reader_Demo\NFC 中的代码 来读取 ISO14443a 卡。 当我到达函数 ISO14443A_sendSelectCmd (如下所示)时、 g_sTrfStatus 从不等于 RX_COMPLETE。 到 目前为止、它看起来 还可以。 你可以提供任何帮助吗?
附加有 MISO、CLK 和 MOSI、用于 在该功能期间进行通信。 尽管只显示了一个标签、但似乎我正在受到碰撞。 无论如何、最后一幅图像中的 MISO 似乎未正确同步。 



谢谢、
Becky
uint8_t ISO14443A_sendSelectCmd (tISO14443A_uidStatus sCascade、uint8_t * pui8UID、bool bSendCT)
{
uint8_t ui8Offset = 0;
uint8_t ui8Status = STATUS_FAIL;
uint8_t ui8Select = SEL_CASCADE1;
IF (sCascade =CASCADE1)
{
ui8Select = SEL_CASCADE1;
}
否则、如果(sCascade =CASCADE2)
{
ui8Select = SEL_CASCADE2;
}
否则、如果(sCascade = CASCADE3)
{
ui8Select = SEL_CASCADE3;
}
其他
{
返回 ui8Status = STATUS_FAIL;
}
G_pui8TrfBuffer[ui8Offset++]= 0x8F;//复位 FIFO
G_pui8TrfBuffer[ui8Offset++]= 0x91;//使用 CRC 发送
G_pui8TrfBuffer[ui8Offset++]= 0x3D;//连续写入
G_pui8TrfBuffer[ui8Offset++]= 0x00;//数据包长度(以字节为单位)-发送字节长度的上半字节和中半字节
G_pui8TrfBuffer[ui8Offset++]= 0x70;//数据包长度(以字节为单位)-发送字节长度的较低半字节和不完整半字节
G_pui8TrfBuffer[ui8Offset++]= ui8Select;//选择命令;可以是0x93、0x95或0x97
G_pui8TrfBuffer[ui8Offset++]= NVB_FULL;//有效位数
if (bSendCT == true)
{
G_pui8TrfBuffer[ui8Offset++]= 0x88;// CT
G_pui8TrfBuffer[ui8Offset++]=* pui8UID;// UID 字节
G_pui8TrfBuffer[ui8Offset++]=*(pui8UID + 1);
G_pui8TrfBuffer[ui8Offset++]=*(pui8UID + 2);
G_pui8TrfBuffer[ui8Offset++]=(0x88 ^* pui8UID ^*(pui8UID + 1)^*(pui8UID + 2)));//计算 BCC 字节
}
其他
{
G_pui8TrfBuffer[ui8Offset++]=* pui8UID;// UID 字节
G_pui8TrfBuffer[ui8Offset++]=*(pui8UID + 1);
G_pui8TrfBuffer[ui8Offset++]=*(pui8UID + 2);
G_pui8TrfBuffer[ui8Offset++]=*(pui8UID + 3);
G_pui8TrfBuffer[ui8Offset++]=(* pui8UID ^*(pui8UID + 1)^*(pui8UID + 2)^*(pui8UID + 3));//计算 BCC 字节
}
TRF79xxA_writeRaw (&g_pui8TrfBuffer[0]、ui8Offset);//发出选择命令
G_sTrfStatus = TRF79xxA_waitRxData (5、15);// 5毫秒 TX 超时、15毫秒 RX 超时
if (g_sTrfStatus = RX_COMPLETE)
{
ui8Status = STATUS_SUCCESS;
G_ui8Iso14443aSAK = g_pui8TrfBuffer[0];
}
其他
{
//不执行任何操作
}
返回 ui8Status;
}




