本帖最后由 哔哩吧啦 于 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 上传
点击文件名下载附件
源码
一周热门 更多>