用的别人的代码,写入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;
一周热门 更多>