OpenEdv-开源电子网

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

求助!基于STM32min板的RCC52识别判断!

[复制链接]

0

主题

0

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2022-3-12
在线时间
3 小时
发表于 2022-3-14 18:29:26 | 显示全部楼层 |阅读模式
3金钱
本帖最后由 iamakamenrider 于 2022-3-14 18:34 编辑

求求啦各位大佬,我想用RCC52识别卡片,让那后进行if判断。
我定义了和卡片编码相同的全局变量,但是当我用if去判断的时候总是出错。
大佬能否帮我看看是哪里除了问题?


这是main函数




#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "RC522.h"

char myIDCard[4] = {0x20,0x00,0x07,0x58};

int main(void)
{        
                char cid[4];
                uart_init(115200);
                delay_init();                             
                LED_Init();                          
                RC522_Init();
                LED0 = 0;
                memset(cid,0,sizeof(cid));
                 
         printf("Startinggggggggg!!!!\r\n");
                while(1)
                {
                        RC522_Read_ID_Once(cid);
                        if(strlen(cid)>0)
                        {
      就是这个if使用无效----------------------------if((cid[0]==myIDCard[0])&&(cid[1]==myIDCard[1])&&(cid[2]==myIDCard[2])&&(cid[3]==myIDCard[3]))
                                {
                                        printf("myIDCard = %s\r\n",myIDCard);
                                        printf("iccard yes!\r\n");
                                }
                                LED0 = !LED0;
                                printf("myIDCARD = %x\r\n",myIDCard);
                                printf("cid = %s\r\n",cid);
                                memset(cid,0,sizeof(cid));
                        }
                }
}



这是RC522模块函数


/*******************************
*连线说明:
*1--SDA(CS)  <----->PC7
*2--SCK  <----->PB13
*3--MOSI <----->PB14
*4--MISO <----->PB15
*5--悬空
*6--GND <----->GND
*7--RST <----->PC8
*8--VCC <----->VCC
************************************/

#define   RC522_DELAY()  delay_us( 2 )

/*全局变量*/
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]={196,58,104,217};
unsigned char card_1[4]={83,106,11,1};
unsigned char card_2[4]={208,121,31,57};
unsigned char card_3[4]={176,177,143,165};
unsigned char card_4[4]={5,158,10,136};
u8 KEY[6]={0xff,0xff,0xff,0xff,0xff,0xff};
u8 AUDIO_OPEN[6] = {0xAA, 0x07, 0x02, 0x00, 0x09, 0xBC};
unsigned char RFID1[16]={0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x07,0x80,0x29,0xff,0xff,0xff,0xff,0xff,0xff};
/*函数声明*/
unsigned char status;
unsigned char s=0x08;

void RC522_Read_ID_Once(char *cardID)
{

        char Str1[20],Str2[20];
        u8 card_type[2];//卡片类型,2字节
        u8 card_ID[4];//卡序列号
        u8 statusRt;
        //PcdAntennaOn();
        statusRt = PcdRequest(PICC_REQIDL, card_type);//寻未进入休眠的卡
        if(statusRt == MI_OK){
    //寻卡成功
                //printf("寻卡成功~!\r\n");
                sprintf ( Str1, "card_type: %02X%02X",
                                        card_type [ 0 ],
                                        card_type [ 1 ]);
                //printf ( "%s\r\n",Str1);
                if( PcdAnticoll (card_ID) == MI_OK){
    //防冲撞成功
                        sprintf ( Str2, "The Card ID is: %02X%02X%02X%02X",
                                        card_ID [ 0 ],
                                        card_ID [ 1 ],
                                        card_ID [ 2 ],
                                        card_ID [ 3 ] );
                        //printf ( "%s\r\n",Str2);
                        if(PcdSelect(card_ID) == MI_OK){

                                //printf("选卡成功!\r\n");
                                if(PcdHalt() == MI_OK){

                                        //printf("休眠成功!\r\n");
                                        sprintf ( cardID, "%02X%02X%02X%02X", card_ID [ 0 ], card_ID [ 1 ], card_ID [ 2 ], card_ID [ 3 ] );
                                                //printf("read suc!\r\n");
                                }
                        }
                }
        }
}

RC522.rar

2.18 MB, 下载次数: 0

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

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 23:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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