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

基于stm32F103C8T6智能门禁经验分享

[复制链接]
攻城狮Melo 发布时间:2023-5-1 18:01
分享一期 RC522刷卡模块做的门禁系统(上面是视频呈现)
! N0 V) `  C8 z6 b. E1 f0 k功能文字说明(拓展空间非常大)
) Q0 ^2 S- e, D6 L) C" \4 \& S% \
识别卡号以及卡类并显示
9 a$ G7 H- T" |% p

0 V7 d& I' c7 w5 y刷管理卡 按下按键 提示刷卡录入(刷未录入的卡即可录入)
* W+ d( _" y1 K9 b3 V* c3 [; E, |& p/ l: V
刷用户卡 按下按键 提示刷卡录入(刷未录入的卡即可录入)* B" v& L/ B) w2 Z

2 F5 f" d( T9 C& R! E* {) c再次刷卡 会显示卡号以及卡类
) Z$ }) H/ c! P8 }+ Y2 N- ?: q3 B
; t% k) y' a2 R; j
实际的项目中添加了舵机,语音播报模块,大家也可根据自己的需求任意修改) n& L5 X9 I; v) {" X7 R) s
& w* X. ~6 H2 g5 o
本次演示所需硬件介绍& V$ b& u- H& t/ r5 v

2 \8 \  }) z# Z
+ ?! d. f; D& @5 |
F103C8T6最小系统
& _& s1 P$ n9 u: z1 e6 B8 j6 e0 S0 ^' y
20210630150249385.png
2 c$ B( x: R5 [8 }5 D# ~3 n  A% C7 ^1 T! G$ I8 m

- p. M  K; S- R2 B; m6 t1 s9 ~RC522刷卡模块
+ [0 [1 k7 A) x' Q接法
3 S6 Y- E. F7 y, _0 uVCC接3.3V( U, n2 B, k8 f# h5 q$ D! ]
GND接GND
0 N$ Q% |$ Q3 l# e) E3 TSDA,SCK,MOSI,MISO根据引脚配置连接" a$ l* ?9 ^6 _8 ]4 J# Y5 f
RQ悬空(不用接)
/ H. K' [. j8 z- tRST接3.3V(波特率设置为9600)8 r, w5 k4 }# S

  T% G* `, |& X3 M7 R+ W4 b; j# _
20210630150120352.png
# F; E0 \% Q; ?+ P& n9 m

8 j5 c. i* |! M5 p/ u5 r1 j轻触按键( C9 j# J" P0 b9 S' P
找一块以前测试的洞洞板, 随意焊接一个小按键,对脚用排针引出更方便连接(节省成本 向我学习)/ N- X+ X  x) s
; W: N4 v2 V3 x+ b
Y0Y0)%~}5S7_253%JTM%)JS.png
3 s; k) ~! {6 N) \5 Z
$ o+ C* L4 A" l- k9 j, h
部分代码
0 c/ V+ k: y) Q: P7 n9 v: R, H) \
  1. #include "stm32f10x.h") n! B% h4 c2 j
  2. #include "usart.h"1 t4 @% O! Z' |* X7 W" O
  3. #include "sys.h"
    - {; h9 f0 [4 \8 P* ]: |. O
  4. #include "oled.h", K, [+ K- Y/ o' v
  5. #include "delay.h"- w4 d: k3 y. ]7 F: ~0 ~2 E, p
  6. #include "rc522_function.h". V, r  Q* Y0 O4 N
  7. #include "rc522_config.h"
      u7 ^4 Q+ y7 \2 ~
  8. #include "timer.h") M( J+ g# [9 J; n+ X' ~6 S
  9. #include "read_card.h"
    2 r9 {# t( z0 J9 P% Z5 i+ S
  10. #include "rtc.h" 8 P+ m& G: \8 l( D4 x, i
  11. #include "usmart.h"
    0 O. _  z$ f7 w5 |$ L7 v
  12. #include "key.h". e: w+ D3 t) E. s0 ?% I% \% c4 U
  13. #include "stmflash.h"
    2 ?2 Y7 q: |2 d( U
  14. #include "MP3.h"1 |% `+ i3 l; [: _( T
  15. const u8 TEXT_Buffer[]={"STM32F103 FLASH TEST"};
    2 T# A2 ^! j( m4 D3 [6 o
  16. u8 USERResult;//IC卡匹配结果
    8 O; ~! Z* |: ^5 J" c" P7 \
  17. u8 Look_Start;//门禁状态$ n& K- T2 r' _3 a9 Q
  18. u8 Key_Value;//按键值. J. Y4 k$ ^( o# k( g# S
  19. extern u8 flag;8 M6 l; p3 ?; P, r5 v4 A
  20. extern int lu;
    8 {4 o. I$ \$ ~- \, D
  21. extern int lz;5 B3 o( G8 R- w' i
  22. int main(void)  \! n9 X/ ~0 I$ h2 ^7 S
  23. {
    " D  T" |) A8 D- E
  24.   u8 datatemp[30];
    $ P* x3 X! e' H" ?4 P' m$ G, V
  25.         u8 sss,aaa;9 [; `, o5 _& X5 Q4 ^8 g9 U0 ]2 L3 x
  26.   delay_init();        & Y9 I1 v! b: i& P
  27.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         
    " v4 g, d, ~. T" Y; B5 n# O4 d
  28.   uart_init(9600);4 m- D+ `1 z/ c6 V5 p4 Z! a! l
  29.         TIM3_PWM_Init(899,0);) {( b6 S, Z. m! u% L) M
  30.         RC522_Init ();
    . s; M" u0 |& q- L
  31.         KEY_Init();         - Z6 C8 Z# K1 [# o, z
  32.         usmart_dev.init(SystemCoreClock/1000000);       
    % a" n1 ^3 s' a5 T( ?- |9 q
  33.         RTC_Init();
    $ `! l7 K$ }+ C0 U) D
  34.         PcdReset ();
    3 S" k' U6 ?/ n0 Y' d
  35.         MP3_Init();
    9 i( p& S0 A6 {, n, G  U/ q
  36.         M500PcdConfigISOType ( 'A' );//设置工作方式
    ; |' V; H; l7 x2 ^6 ^! r7 r: _. R6 i  L
  37.         OLED_Init();                        + s& ~5 ]0 ~9 M  h: T1 l
  38.         OLED_Clear();
    ( L; s6 _  d: U+ V+ G, X; d1 G
  39.         delay_ms(100);* X3 F! Q" p& C3 ?# ^
  40.          while(1)
    # \4 X, A) {' b! F4 m* R( F5 e
  41.          {
    6 m2 E$ M9 R. U
  42.           display_time(0,0,calendar.sec);//显示时间
    / h4 e8 q% [8 u3 L, `
  43.                 oledkaiji();  l; W# d( T5 S. W: v0 U
  44.                 delay_ms(100);
    ; X( b7 n- l8 f3 Z, d6 \
  45.                 IC_test ();//IC卡检测,还需要修改                 
    + t7 r1 {2 a( C, }
  46.                  Key_Value=KEY_Scan(0);
      A0 m& o/ H8 \* q! @( V
  47.                 if((flag==0x01)&&(Key_Value==1))
    8 ], b* ?5 L6 p: f: V2 Q
  48.                  {# W9 R: o' n& G! J9 X
  49.                          OLED_Clear();
    ! ^6 O) q8 m! @9 p. w2 }
  50.                    cunka();//显示 刷卡录入
    - ]) g' q8 ~$ k' ~
  51.                          //舵机关闭) \, }: W  `- i, J
  52.                          delay_ms(1000);
    9 n. f# @  ^# F( x% g
  53.                          while(lu)' b* g8 h0 ^8 R, \# }
  54.                          {         % k, h$ P0 j/ u7 D0 {
  55.                           lurukahao();
    " C, w6 ]/ \7 [' P
  56.                                 //duka();
    $ Q: M% d- m* d: g$ ~( `" z
  57.                          }
    # Y$ ~# @* I, s$ ?
  58.                          flag=0; " a: a/ D* Y: _6 Z! Q
  59.                          delay_ms(1000);& d/ P; T) r0 {( p0 n" M
  60.                          OLED_Clear();- B0 Q0 M# E+ L! S3 b
  61.                          OLED_Clear();
    ! O6 w1 ~% U$ \
  62.            }8 V0 G0 d- X9 j' K( Z
  63.                  if((flag==2)&&(Key_Value==1))
    , n; J, t& |1 X
  64.                  {
    # J3 I5 @, y1 U1 y; d6 b
  65.                          OLED_Clear();
    # ]( a: x* c' I" e1 m" `/ U
  66.                    //cunka1();//显示 刷卡录入
    4 i$ O- \% Y, ]" H: [
  67.                          //打印卡号,保存到flash  G1 i; p) Y2 P: F& b6 i* R9 `. M
  68.                          flag=0; 0 p7 F" z5 U, i
  69.                          delay_ms(1000);! k' ~, U2 M& {$ K7 G
  70.                          OLED_Clear();3 G' D  Z9 G  e" j: D2 v0 Q/ r$ j
  71.                          OLED_Clear();. n/ z" ^  v( F* I( E: |, A, R
  72.            }
    + @2 B/ H! u" Z/ z" Y
  73.          if((flag==1)&&(Key_Value==2)); `0 b. ]  O+ E/ i
  74.                  {2 O8 ~4 p2 D% ~/ ^. T
  75.                          TIM_SetCompare3(TIM3,37000);0 t+ P; X- F, M% x
  76.                          flag=0;
    " U3 t2 w% x  x
  77.            }% j5 Y# b/ m  ?
  78.          . B1 g, i- H( O6 R9 {" K" P/ L
  79.                  if((flag==2)&&(Key_Value==2))
    1 a: O! ~, a6 u" W- m8 F
  80.                  {
    & o" |/ z8 A/ A3 j/ Y$ t
  81.                   //MP3_choose(3);//没有权限关门
    7 [& C$ |$ l0 W4 v. D6 w. {/ B  K
  82.                  }                         
    ( a" \- Z4 `) ]+ L! \
  83.                  7 j/ n4 s$ X& X% v" S& P
  84.                  if(Key_Value==3)
    ; f3 I) P' |: Q4 H$ F0 Z+ O2 w
  85.                  {
    2 ^2 b/ J1 p% W. N$ ~& j
  86.                          OLED_Clear();& H0 e& }' i# ]9 {: }( ~/ |/ s# m$ H
  87.                          while(lz)
    * a: {) H# @1 Y4 U6 M7 d
  88.                          {         2 H+ J9 p( x% w9 F% b* J$ F: R. m
  89.                                  
    # b: M- Y& e5 {
  90.                           //shanchukahao();
      A/ o' N( r9 l% k2 u* k
  91.                                 delay_ms(1000);
    / j/ n6 R5 ^/ t
  92.                                 sk1();
    1 F" `2 S+ s9 S+ Q9 \
  93.                                 OLED_Clear();
    . k/ n# p$ N; p- j9 O
  94.                           OLED_Clear();
    4 O) p& U5 d) f9 x8 G6 |) u% n& g
  95.                                 //duka();
    8 P: ~$ w# I) @% d9 u. Y2 n
  96.                          }6 ~+ b  O' l/ @# V
  97.                     //flag=0;
    ( l' t! m$ Q+ ]* @: H* w( \
  98.                  }
    8 a. L5 D+ r: B0 x8 Z
  99.                  * ]8 o% [; f( m0 B
  100.          
    - C$ ^6 [- {- r) Y% Y6 [$ t$ V1 U
  101. }$ z2 P+ r$ {6 U/ y5 I) C3 Y8 k; A

  102. 0 r0 I# b7 V& ?9 e
  103. . j% H  z' d/ N: B$ |5 }7 b: |0 H' C
  104. " E! o  J( Z; y8 F+ M0 r
  105. . e) H4 p* X* ^; q& i! \
  106. , o( W: e& a* u8 t, @
  107. }
    8 B& C  n2 y7 N( H) ^1 G2 u
复制代码

7 Z7 r6 W7 _3 x7 M! h————————————————
6 ?$ b! a9 s5 R9 l版权声明:文某99 H* E* |+ H2 A$ F0 b
如有侵权请联系删除. O& w9 c1 v7 O$ S' T
$ E  s0 g9 O; r: w* ]8 {

* J" g! U! G9 b) l
赞 收藏 评论0 发布时间:2023-5-1 18:01

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版