标题: 有关RC522的卡验证问题,一直放回的MI_ERR 0Xbb,而不是MI_OK 0x26 [打印本页]

作者: 147wzl    时间: 2019-1-13 15:10
标题: 有关RC522的卡验证问题,一直放回的MI_ERR 0Xbb,而不是MI_OK 0x26
在验证卡片密码时,一直放回的MI_ERR 0Xbb,而不是MI_OK  0x26。
                                
                          status=PcdAuthState(PICC_AUTHENT1A,7,KEYA,ucArray_ID);
                                //PICC_AUTHENT1验证A密码
                                //7 第一扇区的第三块
                                //KEYA {0xff,0xff,0xff,0xff,0xff,0xff};初始值。
                                //ucArray_ID 卡片的ID。
                                
一开始以为是输入的值不对,可是今天我参考网上找的一份程序,这份是可以成功验证的,下面是他的程序。
                            status = PcdAuthState(KEYA, (snr*4+3), DefaultKey, SelectedSnr);
                           //KEYA  验证A密码
                           //snr=1;
                           //DefaultKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};

                            //SelectedSnr ID


有大佬能解决吗


作者: woshige    时间: 2019-1-14 09:51
先排除是不是通信不成功,可以尝试读取模块版本号,如果是0x92说明SPI通信正常,如果不是就回去检查SPI通信程序,再然后他这一套标准代码一般都是一样的不需要改变的,检查一下接线是否正确,然后读卡距离2-3cm,读、写寄存器那里也可以加一个微秒级的延时,大概2、3微秒
作者: 147wzl    时间: 2019-1-14 13:30
woshige 发表于 2019-1-14 09:51
先排除是不是通信不成功,可以尝试读取模块版本号,如果是0x92说明SPI通信正常,如果不是就回去检查SPI通信 ...

模块版本号是读取卡的ID号码?0X92没有找到这个数据。
作者: woshige    时间: 2019-1-15 09:24
147wzl 发表于 2019-1-14 13:30
模块版本号是读取卡的ID号码?0X92没有找到这个数据。

不是,模块版本号是RC522模块返回的一个值,ReadRawRC(VersionReg);这是排除你通信不成功的一个方法,通信成功了再去检查改动其他代码
作者: 147wzl    时间: 2019-1-15 16:55
woshige 发表于 2019-1-15 09:24
不是,模块版本号是RC522模块返回的一个值,ReadRawRC(VersionReg);这是排除你通信不成功的一个方法,通 ...

成功返回了0X92,通信信没有问题。会不会卡不是空白卡。可是我买来就没怎么用过
作者: 147wzl    时间: 2019-1-15 22:41
这是我的程序附件,有兴趣的可以下来看看哪里有问题。谢谢啦

STM32 F103RC522 测试.7z

271.38 KB, 下载次数: 51


作者: ting29785    时间: 2020-11-23 17:08
楼主的问题解决了吗?我也是返回0Xbb




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1