RC522 用单片机读卡序列号为什么一直不成功呢?
我最近在用MF RC522模块和AT89C52做东西,但是怎么都完成不了第一步操作。我现在就想先把卡号读出来。但是程序一到有关卡的部分就嗝屁了,求大神帮忙!这是我的主函数程序:
Led用做断点测试
void main( )
{
unsigned char status;
InitializeSystem( );//初始化:单片机所有引脚置1
LED_GREEN = 0;//////
// while(1){}
PcdReset();//重置RC522
PcdAntennaOff();
PcdAntennaOn(); //重启天线
M500PcdConfigISOType( 'A' ); //ISO14443_A
LED_RED = 0;//////
while ( 1 )
{
// PcdAntennaOff();
// status = 23 ;
status = PcdRequest(PICC_REQALL, g_ucTempbuf);
LED_YELLOW=0; //////程序执行到这儿执行不下去了;
if(status != MI_OK)
{
LED_GREEN = 1; //!LED_GREEN;
continue;
}
// LED_GREEN = 0;
status = PcdAnticoll(g_ucTempbuf); //卡号 *pSnr
if (status != MI_OK)
{ continue; }
status = PcdSelect(g_ucTempbuf); //pSnr:卡片序列号,4字节
if (status != MI_OK)
{ continue; }
status = PcdAuthState(PICC_AUTHENT1A, 1, DefaultKey, g_ucTempbuf);//A密钥,块地址1,密码,卡片序列号
if (status != MI_OK)
{ continue; }
status = PcdWrite(1, data1); //块地址,写入的数据(16字节)
if (status != MI_OK)
{ continue; }
status = PcdValue(PICC_DECREMENT,1,data2); //增减值(扣款,钱包地址,4字节增减值)
if (status != MI_OK)
{ continue; }
status = PcdBakValue(1, 2); //备份钱包(源地址,目标地址)
if (status != MI_OK)
{ continue; }
status = PcdRead(2, g_ucTempbuf); //块地址,读出数据
if (status != MI_OK)
{ continue; }
PcdHalt();
// PcdAntennaOff();
}
}
每次执行到
status = PcdRequest(PICC_REQALL, g_ucTempbuf);
这条指令的时候就嗝屁了
RE: RC522 用单片机读卡序列号为什么一直不成功呢?
现在就想先把序列号读出来,可是一直搞不定http://imgsrc.baidu.com/forum/w%3D580/sign=06b5a10530fae6cd0cb4ab693fb20f9e/a670997eca8065389d49e42192dda144ac3482c0.jpg 确定连接正确吗 ?信号 Pin Pin
名称 Arduino Uno MFRC522 board
----------------------------------------
Reset 9 RST
SPI SS 10 SDA
SPI MOSI 11 MOSI
SPI MISO 12 MISO
SPI SCK 13 SCK
tsaiwn 发表于 2015-4-20 12:00 static/image/common/back.gif
确定连接正确吗 ?
信号 Pin Pin
他用的51.。。 mostblack 发表于 2015-4-20 16:34 static/image/common/back.gif
他用的51.。。
对喔
没注意到他说AT89C52
还写了 main( )
那怎跑到这来问 ?
不是应该去 51 的论坛问 ?
你可以用Arduino 有个RFID的库,可以直接读 mostblack 发表于 2015-4-20 22:50 static/image/common/back.gif
你可以用Arduino 有个RFID的库,可以直接读
求下载地址,谢谢
页:
[1]