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

基于stm32F103C8T6智能门禁经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-1 18:01
分享一期 RC522刷卡模块做的门禁系统(上面是视频呈现)
  Y; ]& k4 X% \, \1 L" ?3 ~功能文字说明(拓展空间非常大)3 d3 u9 J. W. }  c# ~5 W& w; i

2 H4 L5 l9 V& J! E! b" l% X# h识别卡号以及卡类并显示
8 r! s7 S3 L2 a: }

4 e9 ~" \8 j7 U6 F+ X8 x# M刷管理卡 按下按键 提示刷卡录入(刷未录入的卡即可录入)2 U4 N/ g$ B; d2 r2 n- A, Z) N: k/ e* Y/ o

2 V5 Y! e% G% M9 G5 p' d, x刷用户卡 按下按键 提示刷卡录入(刷未录入的卡即可录入)
  ]6 h) }$ p) T1 R

2 x, ~$ e. x) q1 Q3 M9 F再次刷卡 会显示卡号以及卡类4 ]( T; u7 t1 d
! B# r. Z2 @& b  I, R8 ?$ g1 B
实际的项目中添加了舵机,语音播报模块,大家也可根据自己的需求任意修改8 W4 F8 V6 L/ v& z! X
- q: K5 e+ r9 a2 |) s
本次演示所需硬件介绍
$ [$ P7 Q  S2 i' q7 X% i
3 o7 C/ C2 R: X5 ]  {  y7 X' }' i

! V+ \7 a( C4 I! a! D, K* a& v7 F0 NF103C8T6最小系统
$ w4 P& X1 [, f9 m5 K1 Z+ o7 t5 d9 V" E" u' w( N0 F3 [5 [8 \' h% m
20210630150249385.png
7 S, j: y* T6 c  b1 Z
$ z$ {$ e1 n3 i
& F6 b6 Y* m  K* K
RC522刷卡模块/ Y, Y  w1 o/ U, o% s
接法
$ ?% m$ N/ |0 U% S/ AVCC接3.3V" i* o4 a+ E. D
GND接GND# g- d7 f2 R5 E$ P( e
SDA,SCK,MOSI,MISO根据引脚配置连接
8 n" M4 ?7 ?2 @6 x1 e3 |7 B* |9 fRQ悬空(不用接)% z( ]2 G7 U! w& w% I+ Q
RST接3.3V(波特率设置为9600)
3 L9 `. H0 q3 o+ }1 H
1 `6 {; M& Y0 U+ A1 @
20210630150120352.png - R' h5 u- ~5 z+ ?! Z

; k8 H0 n6 k% |, P轻触按键
6 H/ V) z) N% |* Q+ t找一块以前测试的洞洞板, 随意焊接一个小按键,对脚用排针引出更方便连接(节省成本 向我学习)3 Z6 A4 }# H, R% x1 X* s  V

/ m4 H# O# p) m' I8 V- G3 o
Y0Y0)%~}5S7_253%JTM%)JS.png 2 d9 y; n/ a" o8 g$ x- c0 e$ r, |

: m& `; c: U. Q0 a4 \7 n部分代码
: z( H8 J, q: q
  1. #include "stm32f10x.h"+ W% R' b* _" _$ R* W& f
  2. #include "usart.h"1 L( R" m9 H3 a) Y
  3. #include "sys.h", E) k& ^- k- E6 `: k
  4. #include "oled.h"
    0 D# Y- z' r- a0 r! o, S; e! l# d! f" P
  5. #include "delay.h"4 l0 H/ K) ]9 a3 `: n
  6. #include "rc522_function.h"+ S- i1 f6 X, {0 U8 T) E9 y: I; g
  7. #include "rc522_config.h"
    * C4 b, y, N$ b' K
  8. #include "timer.h"
    + `' _0 V; H  e2 F; J
  9. #include "read_card.h"- `& g7 ]$ |1 S5 @
  10. #include "rtc.h"
    1 l  ^4 y  w( p# d4 F  J6 u1 E
  11. #include "usmart.h"
    ) {8 z- u# ?8 z8 o4 V
  12. #include "key.h". A: b* c8 M; Q: |; F. i4 B
  13. #include "stmflash.h"6 z: x9 _) S* @- |5 C/ F0 z
  14. #include "MP3.h". n( n' b6 \8 e8 q- z- D  n+ g
  15. const u8 TEXT_Buffer[]={"STM32F103 FLASH TEST"};7 v. T5 t. |: b/ P
  16. u8 USERResult;//IC卡匹配结果
    7 c0 ]1 `2 t# Y- v; C
  17. u8 Look_Start;//门禁状态% H$ y) [- Q' A2 W6 P8 T
  18. u8 Key_Value;//按键值
    ' x8 u0 }7 s$ c2 @5 w+ o8 d
  19. extern u8 flag;; S3 f& A' n2 |$ T7 F7 Y8 O
  20. extern int lu;3 ^7 o  u, w& ]1 C% }
  21. extern int lz;5 E9 N5 n- H% j2 \3 ^
  22. int main(void)
    * l- ^( {) k" _# M, g
  23. {
    - {2 [) S" d0 Z: ?/ x" m% @
  24.   u8 datatemp[30];
    ( |& b+ F+ U6 t$ J6 b, |, b- g
  25.         u8 sss,aaa;
    ! w4 E+ r' N* j  \$ B
  26.   delay_init();        , t* `6 m' k% R9 P9 |
  27.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         2 t. A8 O  U  ^3 u( e' v
  28.   uart_init(9600);# V; `& S, Z! i3 U" y
  29.         TIM3_PWM_Init(899,0);: e& s4 i, S! u
  30.         RC522_Init ();, w4 q+ G8 [& x0 e/ T
  31.         KEY_Init();         $ F- s5 o7 w9 u( U6 _
  32.         usmart_dev.init(SystemCoreClock/1000000);       
    ) _' D$ b) D5 n5 d6 L, j
  33.         RTC_Init();
    1 b5 A. t# \. p% ]6 L! V: l* i6 n
  34.         PcdReset ();
    : {/ r  L% l9 l: `4 {) t, \, }5 q
  35.         MP3_Init();0 k2 I' x- s, ~+ S
  36.         M500PcdConfigISOType ( 'A' );//设置工作方式
    9 Q8 u$ \, D" {# l
  37.         OLED_Init();                        / a6 F) Q/ G. t: Z  H
  38.         OLED_Clear();: G3 [4 W7 @1 c2 b; L
  39.         delay_ms(100);
    . D) U& t* C4 i2 Q( g
  40.          while(1). h1 a$ U0 c: `$ p" T
  41.          {
      [' w5 L% ~" S' Y* T8 B' Y
  42.           display_time(0,0,calendar.sec);//显示时间
    0 u' u1 R9 Y# T8 c- Q
  43.                 oledkaiji();* U6 Q( B5 I  @5 f9 W8 O
  44.                 delay_ms(100);
    4 F. J6 f; R0 J: E3 ?' W
  45.                 IC_test ();//IC卡检测,还需要修改                 ' e4 D  M( Y! p
  46.                  Key_Value=KEY_Scan(0);
    ! E! W& |) u/ `. ^
  47.                 if((flag==0x01)&&(Key_Value==1))3 t9 p1 _, a$ i1 m- P3 F
  48.                  {$ G+ {, P7 p7 I. F8 F3 l0 a: x
  49.                          OLED_Clear();
    - v3 |0 g7 X3 D5 e" E
  50.                    cunka();//显示 刷卡录入  e) |: R% T+ f' t
  51.                          //舵机关闭
    ) p( D4 W2 X# G" g. P, T
  52.                          delay_ms(1000);
    ( E  b% F9 B( _! o- H1 o2 Y9 c
  53.                          while(lu)
    9 O( e2 I8 j9 y# f  g
  54.                          {         
    1 g# A  l- K" ~- l# R
  55.                           lurukahao();5 R& G1 P! C6 L
  56.                                 //duka();
    8 X- h$ o9 C: Z/ ~4 ?0 F
  57.                          }# a& V$ p* M" }2 g7 l1 g
  58.                          flag=0;
    5 q5 I: K( J( ^5 s9 G! F" U
  59.                          delay_ms(1000);
    $ F5 y1 x) Z2 g+ S8 e
  60.                          OLED_Clear();
    / ]; r* ]! o9 i7 H
  61.                          OLED_Clear();
    + s" S* g  y2 v% b6 e/ F- o/ l2 i
  62.            }* X3 d! `- X0 G/ L
  63.                  if((flag==2)&&(Key_Value==1))
    / b( `. ^8 [! V
  64.                  {' [! h" _" M/ p3 u4 r; J4 z
  65.                          OLED_Clear();
    # t6 S7 y6 k! W- n7 k% U
  66.                    //cunka1();//显示 刷卡录入) ^2 u. x1 J& I$ \7 S2 n# ~
  67.                          //打印卡号,保存到flash# Z' [/ J' l% x( h" o
  68.                          flag=0; : h: S, Z3 F5 v) [% s2 q9 f
  69.                          delay_ms(1000);
    - p; X- v) L% t0 [
  70.                          OLED_Clear();
    ! I8 S& v" f! O1 y1 j* a' S
  71.                          OLED_Clear();. ?8 a+ C2 @5 Z/ a/ Y( l
  72.            }6 o4 \# B& K8 J; g- d+ k
  73.          if((flag==1)&&(Key_Value==2))1 z* _$ G/ ]4 n/ r6 c1 K
  74.                  {; h6 c8 ]" x# p" b  ?; e
  75.                          TIM_SetCompare3(TIM3,37000);8 X: S9 L/ [, Q9 |  P- q6 [
  76.                          flag=0;
    5 A* s1 Z  x) U5 l
  77.            }
    , E* q, g  H( ^% h# e% M
  78.          " [& H$ P, a! g# Z. t5 Z; B' k
  79.                  if((flag==2)&&(Key_Value==2))
    8 ~2 v7 Y' e1 z. Z9 ]& `$ o
  80.                  {9 P5 m5 x* Y$ F$ t: n1 I
  81.                   //MP3_choose(3);//没有权限关门
    , G0 a* ?7 @4 a' A9 H* [% l
  82.                  }                         & ^) A0 G2 s/ Y% t
  83.                  : ?* b6 ?4 [3 R' A, d, R
  84.                  if(Key_Value==3)
    & o7 _$ h1 \  s  e' J/ P7 ?6 {
  85.                  {" k8 H: V# Z3 `& c; i6 E
  86.                          OLED_Clear();
    / h; \3 `9 n' ?$ b9 C3 S/ O  d
  87.                          while(lz): ?9 \: [- w) Z; V" [" F5 n
  88.                          {         
    ' M$ C6 O* f9 l1 C
  89.                                  - [: m# Z! r2 w: Q/ t- D* M) E" z
  90.                           //shanchukahao();# ~& l& g2 O+ ?) G7 N5 w
  91.                                 delay_ms(1000);/ B+ v4 H# x2 V& M2 q* k1 d8 J
  92.                                 sk1();
    : J* ~2 S, n2 O& ]! @
  93.                                 OLED_Clear();4 ?( P1 E* l3 t# U9 U
  94.                           OLED_Clear();. f; p% V, @, h5 k) a1 H: f
  95.                                 //duka();
    - v$ E4 W0 b6 [- Y1 }
  96.                          }- P8 {# Z& F: a+ n/ `; P) C
  97.                     //flag=0; / n1 n/ ]# m9 l( j- m1 x
  98.                  }4 V+ r( g, I0 m: H
  99.                  % r1 o6 q5 Z8 \' x0 ?
  100.          - C1 d+ Y" b# F+ @  s* t- M
  101. }/ w6 }$ ]) A- n# \5 c8 T. G
  102. + R, P2 l& f% T# _
  103. - z3 z( O# B: W4 m

  104. ' j) ^, b- O3 Q% C

  105. 1 R- g$ A7 `9 c9 B
  106.   N/ g8 `& F! E6 q$ h
  107. }
    , o8 E" m1 Y# v  x* P; j
复制代码
' w& c6 b  U( Z4 E0 w
————————————————
" T: r3 B8 t9 d8 B: b  U版权声明:文某9
) W3 k- f  i+ c如有侵权请联系删除
# J2 ?  o5 F1 A. H" h( T1 m% H6 n7 J  h4 y8 b' \/ ]3 C0 s# k

2 G* k8 t' N, ?5 F3 M# I
收藏 评论0 发布时间:2023-5-1 18:01

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版