TRF796X度卡与写卡

2019-10-14 20:32发布

请问论坛有没有用过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);

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。