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

基于stm32F103C8T6智能门禁经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-1 18:01
分享一期 RC522刷卡模块做的门禁系统(上面是视频呈现)* `2 M' k1 G/ [) d6 K
功能文字说明(拓展空间非常大)
9 ?1 o% G" R+ ^8 k' h' v, s& {: k  I2 d) S* t; }) X# t& x
识别卡号以及卡类并显示
# A* |$ v& n( u( h3 d

; Y5 p, j) L) v( }刷管理卡 按下按键 提示刷卡录入(刷未录入的卡即可录入)6 M3 z/ |% [" b$ w% S
( y; r' o8 |9 N' U8 M- D8 `
刷用户卡 按下按键 提示刷卡录入(刷未录入的卡即可录入)
! o" ~1 F8 J4 n9 \+ _- l

5 T8 g& u1 X8 j& [* @$ M( f  t再次刷卡 会显示卡号以及卡类
; ^& c. t7 C$ @1 L& N+ m
6 o& Y; V4 O- t" P, E# t0 k" m
实际的项目中添加了舵机,语音播报模块,大家也可根据自己的需求任意修改
. {* A: D6 _; k( q3 d9 T7 b2 w3 ]- h6 A
本次演示所需硬件介绍; \& D; H  u4 v" f3 [
- T. q5 `" w1 x) C) Y- k

# v: @) J1 ?1 `% a5 G" bF103C8T6最小系统4 S( L( G1 L2 Y" \2 ?  @/ {8 ?( ]

, o( H7 I! K" K3 ^# n* D$ D' F
20210630150249385.png + q' U& x' d3 @" W; F
) \3 J8 T5 |/ ]# X6 O5 A

: Q5 h8 S/ Z( @RC522刷卡模块4 A2 ^3 O* w5 n! _9 H
接法
# u5 N6 r* w- `  pVCC接3.3V
- y9 @8 k3 r3 ?( a, KGND接GND
6 P- A  z; }4 t* OSDA,SCK,MOSI,MISO根据引脚配置连接+ y7 M0 x5 \/ f1 p% F4 }
RQ悬空(不用接)
9 d* g4 v: z$ q' _. d9 [4 kRST接3.3V(波特率设置为9600)" }2 B* z) }6 J* W4 P% e

0 {; i/ P( W( ^+ D9 ^
20210630150120352.png , b& l; _4 `2 ]. ]
8 k$ r, C& {1 Z; r6 E; x7 \
轻触按键
! {7 i3 s  @9 J; ^  g* y  |+ w找一块以前测试的洞洞板, 随意焊接一个小按键,对脚用排针引出更方便连接(节省成本 向我学习)
& x9 x! C/ g" K. P" `5 o4 J" L! k, e1 ^/ X2 R8 g
Y0Y0)%~}5S7_253%JTM%)JS.png
& T+ ]9 o* G% S/ s5 i

& B0 i0 Q$ J9 E. [6 r' U, h0 Z部分代码
  W+ @, _2 T" Q! G4 f
  1. #include "stm32f10x.h"$ B* J( I  N6 T  s1 y/ l' `
  2. #include "usart.h"; y. u2 Q, Z* p
  3. #include "sys.h"
    ) ^2 @) _* E* e+ t. W  ^
  4. #include "oled.h"1 }# C/ c: d% e3 t
  5. #include "delay.h"- H8 _4 Y2 o  D7 M) U/ H3 j
  6. #include "rc522_function.h"1 X* R! L. L2 V2 k
  7. #include "rc522_config.h"
    / Z1 q7 w4 G# O6 t* m! L
  8. #include "timer.h"9 ~' d9 t" o0 ~. _! z, W
  9. #include "read_card.h"' w0 @% ~" E: B( h
  10. #include "rtc.h" 2 f* d, u0 L2 J% I& g0 W
  11. #include "usmart.h"4 B* N6 [% S: p1 m2 G3 ~/ Q
  12. #include "key.h"$ s; K4 b. O' D% r+ W
  13. #include "stmflash.h"
    * K& X* b7 l7 _1 B) ^
  14. #include "MP3.h"1 W) ~( @0 n: l8 P1 p+ x# `
  15. const u8 TEXT_Buffer[]={"STM32F103 FLASH TEST"};1 @/ M9 g' ?2 Z/ I. {3 U8 F
  16. u8 USERResult;//IC卡匹配结果1 O6 |( P" h0 Z' \1 T. h2 p; x
  17. u8 Look_Start;//门禁状态& H$ F, r! F: S! y  x
  18. u8 Key_Value;//按键值
    % p; \/ `3 Y# K" S
  19. extern u8 flag;
    " F, Q1 h: I3 u
  20. extern int lu;! A9 F7 x- _! h' a  @
  21. extern int lz;
    0 U- T0 d# @3 H7 K( ^
  22. int main(void)8 K; @7 k2 w: q0 N& U% Z
  23. {4 Q0 \* W: d2 O5 i/ V# L" m
  24.   u8 datatemp[30];
    & v# f7 \& Z: _# t) S1 S$ k
  25.         u8 sss,aaa;
    6 ^9 \1 Q2 {- \1 f
  26.   delay_init();        " @9 ~3 M& v2 T8 b( V6 v
  27.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         ' P2 H, u" [; J  P2 N- o3 M
  28.   uart_init(9600);' `# F' q! t. k- C( p: X
  29.         TIM3_PWM_Init(899,0);
    8 t* c' y0 j! ]$ k
  30.         RC522_Init ();# ?. x5 [% e: v) |0 C2 `
  31.         KEY_Init();         
    1 c& \; Z2 k% E
  32.         usmart_dev.init(SystemCoreClock/1000000);        & ~6 [& k. d5 Y' `
  33.         RTC_Init(); 5 l& _3 q" H" G0 z9 d6 r  x
  34.         PcdReset ();
    ) d! B, V; ?) f& t
  35.         MP3_Init();4 a" s/ E" S8 y& E
  36.         M500PcdConfigISOType ( 'A' );//设置工作方式
    " V# ?7 N% U8 J8 Z0 N$ Z
  37.         OLED_Init();                        * B) T$ ?& Q5 p" T  W, {  F$ u
  38.         OLED_Clear();
    ) A2 e$ x6 ~7 y9 f+ G6 z- d
  39.         delay_ms(100);
    3 B0 Z* W% P* P( Q/ K7 |7 T
  40.          while(1)6 o* J- x7 X2 L" h
  41.          {
    ' s+ e& @+ D! }. |
  42.           display_time(0,0,calendar.sec);//显示时间% i( T. l1 a' B
  43.                 oledkaiji();
    2 m# n/ Y. D& {9 c: X
  44.                 delay_ms(100);
    3 t  y) h; i1 [7 l
  45.                 IC_test ();//IC卡检测,还需要修改                 - x; t8 A9 d7 k
  46.                  Key_Value=KEY_Scan(0);3 ?+ m0 _" j' d' O! R! F3 Q- p
  47.                 if((flag==0x01)&&(Key_Value==1))
    ; p1 L' e" V: Z- v6 H4 G% O
  48.                  {
    : s$ D* m8 |$ m% l
  49.                          OLED_Clear();3 \& l8 ?0 G/ p4 O9 V- [
  50.                    cunka();//显示 刷卡录入
    # R* O; j- p$ e8 q5 d
  51.                          //舵机关闭; X1 g& S# Y" l+ H2 [  ?
  52.                          delay_ms(1000);1 h/ W  Z! Y9 {9 ?8 a, Z
  53.                          while(lu)
    - ^3 Q4 u' m8 a; ?( x- j9 i3 i$ ~
  54.                          {         ! M( J9 s; a- z0 v/ s+ [% p8 I
  55.                           lurukahao();
    & G) q, O2 Z  k; Z
  56.                                 //duka();5 _6 _$ ^: {  o9 [
  57.                          }# Q3 M  {' y  Q2 z) T% N
  58.                          flag=0; , u  M; v0 C' x5 @8 K  T+ b8 S
  59.                          delay_ms(1000);. j# x" N1 s. o# x8 w
  60.                          OLED_Clear();
    # T9 c5 c# S( c: f
  61.                          OLED_Clear();
    1 R$ ]; V7 m+ R( `6 g  l: _) b, Z. c
  62.            }7 Q& v5 \  S7 P% `8 q# S( |
  63.                  if((flag==2)&&(Key_Value==1))
    8 \0 Y! c: ?$ v  ?1 @5 S& T
  64.                  {
    & P3 v. D% v! t
  65.                          OLED_Clear();7 K% c# l( J- d% D
  66.                    //cunka1();//显示 刷卡录入
    1 @& `" b2 {/ t5 m: G, N
  67.                          //打印卡号,保存到flash
    5 T. T) s* O3 v  @: m
  68.                          flag=0;
    : f  t! a- i5 t3 w
  69.                          delay_ms(1000);
    , r, z7 a! v& u3 J$ ^
  70.                          OLED_Clear();* n' `1 E0 D! I
  71.                          OLED_Clear();7 I. N8 ^7 L& M' @* e( U7 ?
  72.            }
    " G2 @( m6 ?# `* L- g- W+ V2 B7 }
  73.          if((flag==1)&&(Key_Value==2))
    6 Q0 a* z8 v9 y  o5 a
  74.                  {  y5 m2 E2 @2 @- x$ ~. O
  75.                          TIM_SetCompare3(TIM3,37000);! _! Q0 \+ o) h$ @
  76.                          flag=0;+ N/ n( A) H) J! G
  77.            }
    ; N8 N: F5 f. o2 n4 O! S
  78.          
    # e7 H% g) f; T& f) u- l& N
  79.                  if((flag==2)&&(Key_Value==2))
    + `4 }. J! A7 H6 s4 i' x
  80.                  {* a, D8 ]$ }3 G& w: l
  81.                   //MP3_choose(3);//没有权限关门8 h( j2 ?, W- Y8 v$ u0 h( A
  82.                  }                         + k* L( O& {. L' A( P( h- i( C
  83.                  
    " x7 K4 B* o1 h6 a2 t. p
  84.                  if(Key_Value==3)
    & w3 Z! f! n. X# m2 s$ D4 j7 q
  85.                  {
    8 @" S. X& k$ f8 \
  86.                          OLED_Clear();
    & z; z4 K' v* f; @$ X
  87.                          while(lz)$ n, o1 x, g! H4 I5 i
  88.                          {         
    2 V" r% P7 ^7 G0 o5 d
  89.                                  
    4 ^' G, b% g( J* X
  90.                           //shanchukahao();
    # ?  e! i" Z' L/ x
  91.                                 delay_ms(1000);% R, k3 n. e$ B' e
  92.                                 sk1();8 A  z3 C/ x/ ?4 @6 j: z" J
  93.                                 OLED_Clear();. O( x3 U& C, h& N* r
  94.                           OLED_Clear();2 x1 t# h3 _) l2 \4 D
  95.                                 //duka();+ n1 Z4 ?! F) [2 Y: S. V! z  n6 C6 @7 B( a
  96.                          }
    " N: f. A! C2 K
  97.                     //flag=0;
    ) }" w* x5 E' s. x- U' @$ B& R
  98.                  }
    ; d4 B' d! g* W6 f! b6 H
  99.                  ; t* P- U( s& b3 c2 m* u& F
  100.          9 Z- c+ _$ z; I& d) n/ L
  101. }* R. `9 L) \. S# p
  102. 6 C# ]) J# C8 N- c4 @/ S
  103. + o( ]0 W% b$ }- g5 _

  104. 8 o: i# j( U% ]% U  Y3 g

  105. / a+ k- G- P; L* |8 _

  106. " L6 M0 D9 R2 ]: F0 K$ P1 z3 O
  107. }
    6 t8 e! d& v) y1 O( q
复制代码

% I, H" K5 o9 _; T————————————————) Z" V! c  V9 O3 G
版权声明:文某9
. D4 U* Z! n1 D7 @5 T6 Q如有侵权请联系删除
& D2 D. |- U" z. K' D+ [7 c% I
; T1 l2 B. {1 g0 B- z! i$ o: A$ {6 m
收藏 评论0 发布时间:2023-5-1 18:01

举报

0个回答

所属标签

相似分享

官网相关资源

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