分享一个RC523读身份证UID号。。。

2019-07-21 08:38发布

本帖最后由 哔哩吧啦 于 2018-10-26 18:00 编辑

回馈一波正点原子论讨,感谢这个论坛让我们有更多学习和交流的机会。

第一次写分享贴,有不足的地方还请包涵。


这几天在弄一个关于RC523读身份证的功能。

对RC523不是很熟悉,所以在网上找了很多资料和去了很多论坛,都没有找到相关的代码。

所以决定分享一个。

在网上找到比较好的关于读身份证UID的说明如下:

https://wenku.baidu.com/view/e14ff2f2c8d376eeaeaa318c.html
PS: 这里只能发链接了,图片太模糊了,上传后看不清楚。

源码是购买模块附送的:

源码需要修改的地方有:

1:RC523读UID根据源码配置成TYPE-B类

2:uint8_t RC_PcdCmd(uint8_t cmd, uint8_t *pIn, uint8_t inLen, uint8_t *pOut, uint8_t *pOutLen) 这个函数的pOutLen长度返回的是BIT需要进行处理。

3:初始化好执行这三个函数即可获得UID
RCRequestTypeB();           
RCATTRIBTypeB();
RCGetUIDTypeB(regbuff);

这里只能获取身份证UID并非身份证号。想获取身份证号还需要另外购买身份证模块。

读二代证信息则还需要修改源码的地方有:
4:开启发送CRC校验和接受CRC校验

SetBitMask(TxModeReg, 0x80);                                
SetBitMask(RxModeReg, 0x80);

5:修改接收长度

该函数uint8_t RC_PcdCmd(uint8_t cmd, uint8_t *pIn, uint8_t inLen, uint8_t *pOut, uint8_t *pOutLen)里的:
  if (n > 32)
{   
     n = 32;   
}
由原来的16改为32;
修改后,RC523和身份证通讯正常。结合与模块通讯的功能即可实现读取二代证信息。

PS: 此为个人调试结果,如有错误,敬请谅解。



RC523.rar (4.4 KB, 下载次数: 50) 2018-10-26 17:53 上传 点击文件名下载附件
源码


                             

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。