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

基于stm32F103C8T6智能门禁经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-1 18:01
分享一期 RC522刷卡模块做的门禁系统(上面是视频呈现)
. p, p5 \7 z) U- a" O9 F7 p* z功能文字说明(拓展空间非常大)
4 E7 `! H& y) M* }9 \- W% \! \) X8 I$ B
识别卡号以及卡类并显示, Z/ b! }: B6 ^2 \! k5 b
5 @- O7 Q+ R- s; X
刷管理卡 按下按键 提示刷卡录入(刷未录入的卡即可录入)
6 N, f2 c* F7 [7 s' }! A
/ t( b  S& a* I! D1 T5 r# T刷用户卡 按下按键 提示刷卡录入(刷未录入的卡即可录入)
( ?7 i( \8 N8 m
% i( S6 l7 y9 A, |! v, w
再次刷卡 会显示卡号以及卡类
; |' J% C5 J) K! z; `1 X# P
) g. i2 O" i) m+ r
实际的项目中添加了舵机,语音播报模块,大家也可根据自己的需求任意修改
  C( s: r; ^: E  F6 i
1 w8 j5 c0 b+ h8 ?7 S本次演示所需硬件介绍
! h4 [# {  d' Y
$ k2 ]! {, F! z% Z8 ?; P5 w, X

% O1 n+ S' ]& {0 J! M) pF103C8T6最小系统
6 ]! ~: z' x8 |0 Z1 z3 [! R/ N, G: f# X, w5 Y
20210630150249385.png
* g4 }/ E8 V# X0 I0 S
+ F* x" m- C9 I- t, Y  _* ~
  }$ l7 H8 i1 G
RC522刷卡模块, ]/ V8 Q+ Z- J% f) }* L6 _
接法
5 G/ T2 W$ U+ Z0 X$ JVCC接3.3V
3 [+ Q: Y& Y# ^# IGND接GND
6 ^8 r/ ]4 c4 o; \8 l3 B" MSDA,SCK,MOSI,MISO根据引脚配置连接
0 @- I2 I, a, N! e9 {. y& o) MRQ悬空(不用接)
/ `. Q: @( ~; y/ X) PRST接3.3V(波特率设置为9600)
4 }' f  P& {, U! H" T$ G: a) K9 Y9 x# ~3 j: ?# P' T7 ], ~& ^
20210630150120352.png . A2 d; ~1 c: h  d. {
+ h4 |9 \$ m# ~3 D% k' Z* @
轻触按键
! W/ D1 T' V+ ?4 ?, o7 \7 W找一块以前测试的洞洞板, 随意焊接一个小按键,对脚用排针引出更方便连接(节省成本 向我学习)
. v' M7 q. I  l" u$ P; Y; B$ s' m8 O( z' }4 @% H
Y0Y0)%~}5S7_253%JTM%)JS.png . P+ ~6 G9 v- O( [9 U

0 w: ?8 ^. V, b部分代码1 ^: P, F  m) S
  1. #include "stm32f10x.h"
    . I' z7 {# D6 }: C3 L
  2. #include "usart.h") J5 }1 \9 z6 X* h5 b5 _
  3. #include "sys.h"
    & u# y4 D7 `; ^( E  G3 Z" g* i2 @2 Y
  4. #include "oled.h"
    # \. R1 c0 o3 ~7 D
  5. #include "delay.h"
    1 F1 |+ C9 R" b! U
  6. #include "rc522_function.h"
    0 _' b. [9 u5 P  i
  7. #include "rc522_config.h": W5 ~7 d- _& i
  8. #include "timer.h"7 c( |# |. N, w: {$ f2 k
  9. #include "read_card.h"5 k/ i, P, {  F& ~. Z
  10. #include "rtc.h"
    % u. G+ x" f0 o
  11. #include "usmart.h"
    ' t8 H3 E8 o9 X8 X& i5 F
  12. #include "key.h"
    + e9 N6 q, ~- x, \6 n
  13. #include "stmflash.h"" z/ b7 l" b0 ]0 K1 S- E
  14. #include "MP3.h"
    4 U1 Y4 |* ]: E" E) ]2 L6 W: n& x, r
  15. const u8 TEXT_Buffer[]={"STM32F103 FLASH TEST"};
    7 v; `0 D) }, g' P% R; Q2 n2 q
  16. u8 USERResult;//IC卡匹配结果
    $ E7 P7 t. |9 z  {9 F9 A
  17. u8 Look_Start;//门禁状态
    4 W- K6 _9 z- q# A% k
  18. u8 Key_Value;//按键值" C' D8 }, G/ B* G$ R( w+ h
  19. extern u8 flag;
    ( K& s4 E0 @3 w) a8 ]  I& n
  20. extern int lu;
    ' k% L5 z, C3 m- Q3 o
  21. extern int lz;* s" r5 t1 F; B1 K& b
  22. int main(void)
    4 r1 H. B8 I. m; B  u) u, }$ m6 T
  23. {
    9 {$ p' A: S: U! T2 u8 V
  24.   u8 datatemp[30];
    & M# q% X0 k5 Y+ J9 N5 \4 p
  25.         u8 sss,aaa;1 x* l: Y1 l; W) u1 f$ t. ~+ |
  26.   delay_init();       
    $ z- K- G5 s: }
  27.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         1 x  V1 K0 b$ Q' G/ |' T
  28.   uart_init(9600);3 C  m- V7 v& I7 p2 o
  29.         TIM3_PWM_Init(899,0);
    5 d8 s% B$ W* V) V; }. F, k
  30.         RC522_Init ();. F: x3 F% w( h7 {- `; E% H" e
  31.         KEY_Init();         
    7 p  p9 D4 F  T( a
  32.         usmart_dev.init(SystemCoreClock/1000000);        $ U6 n. p* P- D& t" o6 V9 F
  33.         RTC_Init(); ( ^$ N! E0 w( _; U, z4 w3 N4 g
  34.         PcdReset ();
    & n' |/ Z- H0 z5 H/ R8 \1 c
  35.         MP3_Init();  L- |' E9 N4 o& X& A1 Y  f: g
  36.         M500PcdConfigISOType ( 'A' );//设置工作方式
    6 W% p- u( F8 D1 {1 z: }) _! n
  37.         OLED_Init();                       
    4 c3 i5 y3 B9 T$ S- l
  38.         OLED_Clear();5 F) l% P# L  {( C3 V4 b6 U' M2 K
  39.         delay_ms(100);5 d" o/ N, v" U8 q! i
  40.          while(1)! v9 I# w2 @7 D7 G3 D( B) F) B
  41.          {
    ' t+ }- S2 V* ^( E, ?
  42.           display_time(0,0,calendar.sec);//显示时间% g: S# j0 K6 V+ i4 \7 A% H- E7 S
  43.                 oledkaiji();
    & ?- W2 m! u; [2 p  p) G% q" _, n! e
  44.                 delay_ms(100);% q7 I2 P4 P) E
  45.                 IC_test ();//IC卡检测,还需要修改                 
    - x; a6 w/ }/ T! M% X8 ^
  46.                  Key_Value=KEY_Scan(0);
    5 P8 }, U/ L$ N/ v6 \# R$ D' n; T8 q
  47.                 if((flag==0x01)&&(Key_Value==1))# P" Z5 I7 T6 D! J5 _
  48.                  {
    : X' x  s$ ^8 J
  49.                          OLED_Clear();
    & ]7 o  w8 K( x; ?6 H3 O
  50.                    cunka();//显示 刷卡录入
    / B9 G/ f8 b! Z" n1 e9 F. @! B
  51.                          //舵机关闭
    2 A5 T6 K# u% Q  {) w
  52.                          delay_ms(1000);! g* \8 B: R& K* Q
  53.                          while(lu)3 q( C7 r( F1 B" ?; `1 M
  54.                          {         
    ( l: h. b7 p# K4 `. X) B# d
  55.                           lurukahao();
    7 j2 F( r- u/ p
  56.                                 //duka();
    # m" {; N1 {) g7 |( l
  57.                          }
    ! G) o$ R- G! J2 m5 f
  58.                          flag=0;
    # ]: G* Z! u( X, N7 m6 }
  59.                          delay_ms(1000);% a! s; ]5 e& R' D
  60.                          OLED_Clear();
      J* K8 m/ L: @0 @
  61.                          OLED_Clear();
    , Y6 U: l  `% Q& l5 Z
  62.            }3 H$ c8 D$ g) g% [) g
  63.                  if((flag==2)&&(Key_Value==1))
    6 y7 @  m  G2 X* G
  64.                  {
    ( I2 W" r6 H6 B* U. ^1 D8 {) }3 z7 h
  65.                          OLED_Clear();
    " N4 c1 O; f6 C( T/ u8 W  N& {0 L" K7 j
  66.                    //cunka1();//显示 刷卡录入
    * ?) Z, z- p  s0 A9 o* ~4 v& v, W6 o
  67.                          //打印卡号,保存到flash
    2 w4 e/ F6 y" I$ P9 i$ n0 B
  68.                          flag=0;
    % S' e! K  k) }" d: b0 ^; }* H, m
  69.                          delay_ms(1000);" c5 o5 G( e5 C# Y* T7 M4 A- s& ^
  70.                          OLED_Clear();( Q3 M, M- E2 R6 F! w& I
  71.                          OLED_Clear();
    ! _! Q7 W9 P7 V' M! F
  72.            }
    / d3 ~6 O3 b& y9 H: X
  73.          if((flag==1)&&(Key_Value==2))
    & d& J3 d: P9 T2 P+ i
  74.                  {4 ^6 e! e* u4 w, E
  75.                          TIM_SetCompare3(TIM3,37000);
    " g' l! O: d; x( b
  76.                          flag=0;
    ! t' [- I& S3 N# S! c
  77.            }6 S! t/ c3 |( k8 L8 v  f  V, {& o
  78.          . |/ T/ @8 W) @1 R2 b# x2 _
  79.                  if((flag==2)&&(Key_Value==2))
    ( L& W! W' y) h* E9 S$ y, A1 Z
  80.                  {
    ) e* A  J. `4 u8 a# m! Y. H3 U
  81.                   //MP3_choose(3);//没有权限关门
    0 T' y8 Q9 l' X8 t9 h" A
  82.                  }                         / l+ `. d( t3 D( {
  83.                  
    " l; g1 x9 x' X1 d3 F% O: y1 D
  84.                  if(Key_Value==3)
    ; f+ \1 E- L" p; n
  85.                  {
    / I* m# V+ _& b  [  k6 Q
  86.                          OLED_Clear();
    9 H* X/ U4 j( m
  87.                          while(lz)7 `4 [- ^, \$ }
  88.                          {         1 [- u; P' q* C
  89.                                  
    3 Y% v% z; L8 s: p- W7 Z1 W
  90.                           //shanchukahao();
      I, i7 b, i, l9 D3 c3 s, Y$ T& G7 h
  91.                                 delay_ms(1000);
    ( z7 c* u! X' d* w7 y
  92.                                 sk1();/ T- Q3 U% z4 s5 G7 p  w
  93.                                 OLED_Clear();" }6 Q: _4 }! Y" |/ a5 V
  94.                           OLED_Clear();
    * Y1 h$ q% s+ P: j+ X
  95.                                 //duka();
    - [1 L; j5 A& O8 e' H: T
  96.                          }
    8 B6 W( V. \3 q* v# H
  97.                     //flag=0;
    $ {! _  p2 P7 S0 ]+ K, G2 g; H
  98.                  }
    5 J& N$ N/ H' f2 O% j
  99.                  9 z5 L( ?4 y* o0 S9 u1 Y6 C
  100.          
    * @, F  j% {. h# W$ L  a: e
  101. }: g- V& H& p0 V* F' ~1 R# A: n

  102. 2 N" V6 K' X8 b1 O" {' a% V# J
  103. ) Q2 F! k: l0 U' w

  104. ( B6 e, [" w. Q8 z! @$ ]0 d- N0 ^
  105. * J, j8 ?4 Y- P1 F( a! D$ `8 h
  106. * J8 U5 L0 {# v- B# b+ u; s& ]
  107. }& e  i8 }! |( {
复制代码

! D& W2 d" P+ `1 ?7 b: @————————————————1 C4 `8 x2 D6 z  a3 V
版权声明:文某9
- c) y/ E% t9 }. a如有侵权请联系删除
- A, W0 H$ @1 E- v7 _( f* C) ~7 f
0 d: [, m2 B4 q' w" E% ]8 Z' K3 r. q, R; E
收藏 评论0 发布时间:2023-5-1 18:01

举报

0个回答

所属标签

相似技术帖

官网相关资源

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