初级会员

- 积分
- 100
- 金钱
- 100
- 注册时间
- 2015-5-9
- 在线时间
- 9 小时
|
1金钱
我是用32MINI板调的RC522,实现检测IC卡然后将序列号显示在TFTLED上,但是不知道为什么只能检测一次IC卡然后显示出来,然后就不检测了,程序一直在while里面循环着,并且循环一次的时间明显变长了。然而我将液晶显示的语句注释掉就正常了,不知道怎么回事,求解答。。。[mw_shl_code=c,true]#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "rc522.h"
u8 UID[4],Temp[4];
u8 shuzi[]={"0123456789abcdef"};
u8 h1[9];//---¶¨òåÎa8ê±oò×îoó×Ö·û3öÏÖÂòÂë
int main(void)
{
u8 x=0;
u8 lcd_id[12]; //′æ·ÅLCD ID×Ö·û′®
u8 status2, Repeat_Status;
delay_init(); //Ñóê±oˉêy3õê¼»ˉ
uart_init(9600); //′®¿ú3õê¼»ˉÎa9600
LED_Init(); //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú
LCD_Init();
InitRc522();
PcdReset(); //¸′λRC522
PcdAntennaOn(); //¿aÆôììÏß·¢éä
POINT_COLOR=RED;
// sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//½«LCD ID′òó¡μ½lcd_idêy×é¡£
POINT_COLOR=RED;
while(1)
{
status2=PcdRequest(0x52,Temp);////Ѱ¿¨,êä3öÎa¿¨ààDí----
if(status2==MI_OK)
{
status2 = PcdAnticoll(UID); //·à3å×2′|àí£¬êä3ö¿¨Æ¬DòáDoÅ£¬4×Ö½ú--μú0éèÇøμú0¿éǰ4¸ö×Ö½úêÇUID£¨DòáDoÅ£
LED0=0;
delay_ms(100);
LED0=1;
}
if(status2==MI_OK)
{
h1[0]=shuzi[(UID[0]&0xf0)>>4];//BCDÂ룬Ôùè¥Õò¶Ôó|μÄêy×Ö
h1[1]=shuzi[UID[0]&0x0f];
h1[2]=shuzi[(UID[1]&0xf0)>>4];//BCDÂ룬Ôùè¥Õò¶Ôó|μÄêy×Ö
h1[3]=shuzi[UID[1]&0x0f];
h1[4]=shuzi[(UID[2]&0xf0)>>4];//BCDÂ룬Ôùè¥Õò¶Ôó|μÄêy×Ö
h1[5]=shuzi[UID[2]&0x0f];
h1[6]=shuzi[(UID[3]&0xf0)>>4];//BCDÂ룬Ôùè¥Õò¶Ôó|μÄêy×Ö
h1[7]=shuzi[UID[3]&0x0f];
LED0=0;
delay_ms(1000);
LED0=1;
LCD_ShowString(30,40,200,24,24,"card:");
// LCD_ShowString(30,70,200,24,24,h1);
// printf("card:");
// printf(h1);
}
delay_ms(500);
LED1=0; //-2ù×÷ò»Ãëoó×Ô¶ˉ′¥·¢¸ßμçÆ½
delay_ms(500);
LED1=1;
status2=3;
} [/mw_shl_code]
|
|