初级会员

- 积分
- 59
- 金钱
- 59
- 注册时间
- 2018-11-19
- 在线时间
- 21 小时
|

楼主 |
发表于 2018-12-7 09:05:37
|
显示全部楼层
//#include "led.h"
#include "delay.h"
//#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
#include "string.h"
#include "Myspi.h"
#include "rc522.h"
u8 Temp[4],UID[4];
int main(void)
{
u8 status2, status1;
u16 RETRY=0xFFF;
u8 status=MI_ERR;
Stm32_Clock_Init(9);//系统时钟设置
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200);
LCD_Init();
InitRc522(); //初始化射频卡模块
PcdReset(); //复位RC522
delay_ms(2);
PcdAntennaOn(); //开启天线发射
LCD_Clear(WHITE);
POINT_COLOR=BLACK;
LCD_ShowString(30,40,210,24,24,"RC522 INITIAL");
while(1)
{
//PcdAntennaOn(); //开启天线发射
status=PcdRequest(0x52,Temp);////寻卡,输出为卡类型----
if (status != MI_OK)
{
PcdReset();
PcdAntennaOff();
PcdAntennaOn();
continue;
}
// do
// {
// RETRY--;
// status=PcdRequest(PICC_REQALL,Temp);
// }while(RETRY!=0&&status!=MI_OK); //等待寻卡成功
if(status==MI_OK) //寻卡成功
{
LCD_ShowString(30,70,210,24,24,"PcdRequest OK");
status=MI_ERR;
status = PcdAnticoll(UID); //防冲撞处理,输出卡片序列号,4字节--第0扇区第0块前4个字节是UID(序列号)
if(status==MI_OK)
{
status=MI_ERR;
status=PcdSelect(UID);
}
if(status==MI_OK) //选卡成功
{
// LCD_Clear(WHITE);
POINT_COLOR=BLACK;
LCD_ShowString(30,100,210,24,24,"Select SUCCESS");
//LCD_Showxnum();
if(UID[0]==0xB0&&UID[1]==0x86&&UID[2]==0x4D&&UID[3]==0x25)
LCD_ShowString(30,130,210,24,24,"RIGHT");
else
LCD_ShowString(30,130,210,24,24,"ERROR");
delay_ms(5000);
// PcdAntennaOff();
}
LCD_Clear(WHITE);
POINT_COLOR=BLACK;
LCD_ShowString(30,40,210,24,24,"RC522 INITIAL");
delay_ms(5000);
continue;
}
else
{
//printf("检测超时,未检测到消费卡!!!\r\n");
LCD_ShowString(30,70,210,24,24,"检测超时,未检测到消费卡");
PcdAntennaOff(); //关闭天线
}
}
} |
|