OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2638|回复: 2

TRF796X度卡与写卡

[复制链接]

19

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2015-12-6
在线时间
47 小时
发表于 2017-3-4 11:14:21 | 显示全部楼层 |阅读模式
5金钱
请问论坛有没有用过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);

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-3-4 12:12:35 | 显示全部楼层
回复

使用道具 举报

19

主题

66

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
211
金钱
211
注册时间
2015-12-6
在线时间
47 小时
 楼主| 发表于 2017-3-7 20:29:13 | 显示全部楼层
本帖最后由 我是520老谢 于 2017-3-14 16:19 编辑

这个读卡是没问题的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-12 18:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表