请问论坛有没有用过TI的TRF796X的,想问问有谁做过这个RFID的,我把卡读出来之后,按照例子写单个块,读单个块,貌似不太对,如果有使用过的,希望可以一起谈论。
我看过TI的文档也是这么描述的,但是没什么反应。
//*************************************************************************************************
// 功能描述 : 获取单块数据,无地址的读
// 输入参数 : 起始块
// 返回参数 : 无
// 说 明 :
//*************************************************************************************************
void ReadSingleBlock(unsigned char Block)
{
char i;
unsigned char command, found = 0;
unsigned int size; // 请求命令数据帧大小
size=3;
buf[0] = 0x8f; // Reset FIFO command
buf[1] = 0x91; // send with CRC
buf[2] = 0x3d; // write continuous from register 1D
buf[3] = (char)(size>>8);// Data for register 1D, data length
buf[4] = (char)(size<<4);// Data for register 1E
buf[5] = 0x00; // ISO15693 flag with Option flag set
buf[6] = 0x20; // Read mul Blocks command code
buf[7] = Block; // First Block Number
SpiRawWrite(&buf[0], 8); // 写 FIFO
TIM3_Init(10 * DELAY_MS,TIM_PSC);
i_reg = 0x01; // 当前状态为RX状态
START_TIM3();
EXTI_CTROL(ENABLE_EXTI);
rxtx_state = 1; // 接收数据保存从buf[1]开始
while(i_reg == 0x01)
{
}
i_reg = 0x01;
TIM3_Init(10 * DELAY_MS,TIM_PSC);
START_TIM3();
while(i_reg == 0x01)
{
}
if(i_reg == 0xFF)
{ //接收到 UID
found = 1;
}
command = RESET; // FIFO 在下个时隙前必须复位
SpiDirectCommand(&command);
if(found)
{
for(i = 0;i <4;i++) //提取接收缓存中的数据
{
DataUID[i] = buf[5-i];
}
}
else
{
for(i = 0;i < 8;i++)
{
DataUID[i] = 0x01;
}
}
EXTI_CTROL(DISABLE_EXTI);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>