RFID读卡,所有卡号都一样

2019-07-21 07:33发布

用的别人的代码,写入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 ");
                         status=MI_ERR;
                         status = PcdAnticoll(SN);/*防冲撞*/
                 
                }       
               
                if(status==MI_OK)
                {
//                        LCD_ShowString(150,30,200,16,16,"PcdAnticoll_MI_OK");
                                                printf("PcdAnticoll_MI_OK ");
                        status=MI_ERR;
                        status =PcdSelect(SN);
                }

                if(status==MI_OK)//選卡成功
                {
//                         LCD_ShowString(0,48,200,16,16,"PcdSelect_MI_OK  ");
                                                        printf("PcdSelect_MI_OK ");
                         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 ");
                        printf("%d ",SN);       
                        delay_ms(1000);                                 
                          status=MI_ERR;



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