天线|RF射频
直播中

周棠亨

7年用户 1023经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

求发个MINI STM32用RC522读取IC卡的序列号并且和51板子用NRF24L01通信?

感觉标题有点长,一直在潜水下资源,今天也算是做做贡献吧!

先简略的说下这套东西是怎么工作的,STM32是发射端,包含RC522读取IC卡的序列号并通过无线模块发送到 51接收端两个功能。RC522的数据手册我是看不懂的…所以我用了论坛里下载的库。51端接收到发射端发来的序列号,通过串口发送给上位机。

上位机是用Qt写的,没有用Qt自带的SQLite,因为不会…所以就用了上学期课程学过的SQL Server。Qt版本是4.7,这个版本不是原生支持串口的,所以用了网上的第三方串口类。

上位机有两个,第一个是用来录入的,第二个是用来签到的。录入呢,顾名思义就是往数据库里添加条目。签到的主要功能就是检查串口发来的序列号有没有符合数据库里的条目,如果符合则将签到次数加1,不符合这显示找不到该用户。

下面先说说我的几个bug,现在还无法解决,也许坛子里的高人们能替我看看哈。




回帖(17)

王颖

2020-6-9 14:45:49
bug1:对于刷卡姿势的要求。说起来有点搞笑。RC522这个模块是在淘宝上买的,我用的坛子里下的库来读取每张卡全球唯一的序列号,一共是5个16进制的数,但是当我慢慢将卡靠近的时候,倒数第二位就会读取错误,而且每次都是0x20。这点我通过51的接收端给滤掉了。

bug2:某些时候,RC522会不断的读到一连串的0x80,据我所知,学校的所有学生卡的序列号都是以0x04结尾的,所以这点我也通过用51的接收端给滤掉了。

bug3:这是Qt上位机的问题。因为刚接触Qt不是太久,对于串口类还不熟悉。遇到了以下问题:不能正确的打开关闭串口,如果用我自己的代码来打开串口,那在串口接收到的本应该是5个16进制的书就只能接收到一个。后来误打误撞找到一个方法,先用网上下的串口助手将串口打开关闭一次,再用自己写的,那就正常了。
举报

王琴

2020-6-9 15:05:37
现在贴代码吧。无线刷卡.zip (104.46 KB )
串口上位机.zip (39.76 KB )
举报

李磊

2020-6-9 15:12:13
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

彭玉林

2020-6-9 15:24:10
谢谢分享
举报

更多回帖

发帖
×
20
完善资料,
赚取积分