OpenEdv-开源电子网

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

RFID读卡,所有卡号都一样

[复制链接]

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-5-10
在线时间
20 小时
发表于 2018-11-24 20:51:28 | 显示全部楼层 |阅读模式
1金钱
用的别人的代码,写入mini板,能够实现寻卡、防冲撞、选卡,通过串口输出状态,但是无论读取哪一张卡,输出的卡号都是536870914,不清楚是为什么呀??代码如下
/*全局变量*/
unsigned char CT[2];//卡类型
unsigned char SN[4]; //卡号
unsigned char RFID[16];                        //存放RFID
unsigned char lxl_bit=0;
unsigned char card1_bit=0;
unsigned char card2_bit=0;
unsigned char card3_bit=0;
unsigned char card4_bit=0;
unsigned char total=0;
unsigned char lxl[4]={6,109,250,186};
unsigned char card_1[4]={66,193,88,0};
unsigned char card_2[4]={66,191,104,0};
unsigned char card_3[4]={62,84,28,11};
unsigned char card_4[4]={126,252,248,12};
u8 KEY[6]={0xff,0xff,0xff,0xff,0xff,0xff};
unsigned char RFID1[16]={0x01,0x00,0x00,0x00,0x00,0x00,0xff,0x07,0x80,0x29,0xff,0xff,0xff,0xff,0xff,0xff};

int main(void)
{
        unsigned char status;
        unsigned char s=7;
        u8 t;
        Stm32_Clock_Init(9);
        delay_init(72);
        uart_init(72,9600);
        LCD_Init();
        InitRc522();
       
        while(1)
        {
                status = PcdRequest(PICC_REQALL,CT);/*尋卡*/
                if(status==MI_OK)//尋卡成功
                {
//                         LCD_ShowString(0,30,200,16,16,"PcdRequest_MI_OK");
                        printf("PcdRequest_MI_OK\r\n");
                         status=MI_ERR;
                         status = PcdAnticoll(SN);/*防冲撞*/
                 
                }       
               
                if(status==MI_OK)
                {
//                        LCD_ShowString(150,30,200,16,16,"PcdAnticoll_MI_OK");
                                                printf("PcdAnticoll_MI_OK\r\n");
                        status=MI_ERR;
                        status =PcdSelect(SN);
                }

                if(status==MI_OK)//選卡成功
                {
//                         LCD_ShowString(0,48,200,16,16,"PcdSelect_MI_OK  ");
                                                        printf("PcdSelect_MI_OK\r\n");
                         status=MI_ERR;
                         status =PcdAuthState(0x61,0x06,KEY,SN);
                 }
       
                 if(status==MI_OK)//驗證成功
                 {
//                          LCD_ShowString(0,64,200,16,16,"PcdAuthState_MI_OK  ");
                        printf("PcdAuthState_MI_OK\r\n");
                        printf("%d\r\n",SN);       
                        delay_ms(1000);                                 
                          status=MI_ERR;



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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-11-25 00:59:15 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-22 12:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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