你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

[中秋活动]使用STM32F103驱动RC522读IC卡实现NFC功能

[复制链接]
养乐多 发布时间:2021-9-14 14:08
参加下中秋活动。做一个NFC读取。6 V: f* h/ R$ D# X! S. c
14.jpg

1 I0 w( V- V* o" f6 ]  Z+ _6 N2 mRC522与PN532简介
: o" p3 N& q5 `& gRC522与PN532在使用上都可以用来读写我们之前用的M1的IC卡,并且两款芯片有着同样都是应用于13.56MHz的 非接触式通信芯片等诸多共通之处,查阅网上资料对于两者的区别个人认为RC522属于RFID,而PN532属于NFC,在功能上PN532包含了RC522的所功能(个人见解),并且对于大部分需要量产使用或者学生党来说另一个比较明显的差异就是价位上的区别,RC522市面上的模块仅需7人民币左右即可买到,而PN532需要23~26人民币,价格上的差距还是比较明显的。6 h3 f) {" W' c" o( x
  H8 K8 L# a$ h

7 q4 v4 [2 @& q' \关于STM32F103驱动方式4 e, e  A# c, i0 \+ G/ z3 m
我们这里使用的是STM32F103ZET6的板子和RC522的模块连接的,采用的SPI的方式驱动,这里使用C8T6的板子也可以,STM32F103系列的即可,只是需要在程序上稍作修改(参考后文),这里SPI端口选择使用的是STM32的SPI1(为了能兼容更多的板子),下面是我使用的开发板供参考
) a; G" Z7 K' ]% [, p$ y
5 G! v3 Z; @- c
13.png
1 M, u' m$ M( S% n8 W$ F. ?+ U
下面这款市面上使用的比较多的C8T6板子也可以,价格便宜对于学生党就友好多了哈哈
. ~; Y7 i# J2 V; |, K1 W) A
14.png
+ g# T2 S6 z: q) H

! q4 y1 h2 P  [9 D4 m接线说明
( G. K- }* w1 w( v* n接下之前先上一张RC522模块的引脚图,方便对比接线. L$ u, L3 I; V* k
15.png
3 g1 v3 p8 ]3 f: F

# k! `5 P; ~3 n' T* U; {
16.png

3 x5 l& W' O  d7 {# Q下面是对于STM32使用端口以及RC522引脚的说明
$ H( R: k: q% c6 V9 L6 @STM32使用端口0 q7 o2 H4 _/ o1 F' s4 V
. Y: T& l, j. H+ M7 L1 x5 T9 W
17.png
* V( r! [7 \" a" X& J. u
RC522引脚说明, q" L( r+ |" c0 V- m) h# A
18.png

5 f0 U5 Z7 h2 Q. w' W程序烧录
* A/ N+ K2 b; {( x- I! a8 X# I需要程序可在下方留言邮箱,程序烧录这里使用的ST-LINK,烧录程序前先在MDK里面配置成自己的STM32板子信息
/ n! U% T3 q& J# c* n$ }ST-LINK配置
- |( R$ _5 v. ?! q6 e( h* R% t9 B6 j
19.png
2 ~( B8 r* [% [- ~6 K- n) ^8 e2 m: g
下面这里请确定SWDIO里面读取到了板子的信息,没有的话建议检查一下接线
/ |# I) r: Z. [8 a8 U1 t: a' o
20.png
4 N3 h* d- g+ ]% J
下面的Device Size选择与自己用的板子对应大小的
' c7 w& X  j6 X* N% Q
21.png

  @& v' E4 P# H另外,如果选择的不是STM32F103ZE的板子的话需要在MDK的魔术棒下面的device中选择自己的芯片,我这里是用的STM32F103ZE所以是选的这个,见下图+ O2 P; J6 J# R3 ^1 @, H, D* @5 }" ]* a
22.png
- s6 Y+ q; @1 k
OK,配置好之后我们点击下载3 t3 Y* b6 M& J3 E2 P+ I6 S  I
23.png

2 w; \( w8 [$ a) I$ Y查看卡号
' S& M% v8 e/ n+ v按照上面的接完线烧完程序之后,看板子上的串口1有无板载USB下载电路,如果板子可以直接插数据线下载程序的话,直接用下载程序的USB口接到电脑上,在设备管理器查看端口号即可,我这块是带下载电路的,如果是板子没有带的话需要用USB-TT转换模块RX接PA9,TX接PA10来通信
* k$ j0 b+ c5 c0 h6 _2 \1 Y设备管理器参考下图6 h$ _2 F! |3 r6 a- K9 O$ Y9 N
24.png

4 v' G; c. E* y4 m3 y打开之后在端口中查看自己板子的端口号,我这里是COM4
2 [0 U1 v# e. N5 y9 X: `
25.png
3 f0 A# a4 U: B( j( l
接下来我们打开一个串口调试软件,将参数配置为115200,N,8,1,这个参数是在程序中定义的,可自行参考修改串口程序,参数设置好打开串口之后我们就可以接收到STM32板子向我们发送的读取的到卡号信息了
) d1 b. e7 Q8 V# R. }
26.png

' _, p0 Z0 @/ g2 ^( |: c同样的卡刷RC522和PN532读到的卡号相同,验证之后程序读取数据均为正确数据!
0 I: j+ P7 F3 O8 C& c1 N  B, O* b& T0 j7 z8 c" Z

1 L* p+ Q6 z4 _$ m$ ^
, O: o* Z& _' }( y) p8 j. P
代码:
/ z  y2 I9 |4 t" y1 U& }1 N链接:https://pan.baidu.com/s/1CGK9dIAtSbDaGNCnBj4qdQ
1 z! _' i( ~3 W+ Y4 C; R提取码:to42
4 F: X2 P2 _" f( `  S0 }

6 x* Q" s+ R! H9 h7 w) D
赞 1 收藏 评论1 发布时间:2021-9-14 14:08

举报

1个回答
寒门过河卒 回答时间:2021-9-15 09:04:02
RC522手册里面说支持14443A协议CPU卡,这个具体怎么操作?
+ T1 Q' G/ m8 |8 D4 y
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版