当前位置: 首页 > news >正文

【STM32】遥控伸缩门禁改NFC刷卡

NFC门禁控制系统 - 需求文档

一、硬件配置

1. 主控芯片

  • 型号: STM32F103C8T6
  • 封装: LQFP48

2. 外设清单

外设型号数量
NFC读卡器MINI RFID-RC5221个
OLED显示屏0.96寸 4针IIC接口 128x641个
有源蜂鸣器3.3V有源1个
LED板载PC131个
BL1551双通道双向模拟开关3个

二、引脚分配

STM32引脚功能表

STM32引脚功能连接的设备
PA0OLED_SCLOLED屏幕时钟
PA1OLED_SDAOLED屏幕数据
PA3RC522_RSTRC522复位
PA4RC522_SDA数据接口)
PA5RC522_SCKRC522时钟
PA6RC522_MISOSPI 接口主入从出
PA7RC522_MOSISPI 接口主出从入
PB0Register_Mode注册模式触发(低电平=注册模式)
PB8Remote_PAUSE遥控器暂停键
PB9Remote_OPEN遥控器开门键
PB10Remote_CLOSE遥控器关门键
PB11Buzzer有源蜂鸣器控制
PC13LED板载LED指示灯

RC522接线

RC522引脚连接
3.3V3.3V电源
GNDGND
RSTPA3
SDAPA4
SCKPA5
MOSIPA7
MISOPA6
IRQ悬空

OLED屏幕接线

OLED引脚连接
GNDGND
VCC3.3V
SCLPA0
SDAPA1

遥控器控制(通过BL1551)

STM32 PB8 ── BL1551 ── 遥控器暂停按钮 STM32 PB9 ── BL1551 ── 遥控器开门按钮 STM32 PB10 ── BL1551 ── 遥控器关门按钮

有源蜂鸣器接线

蜂鸣器引脚连接
GNDGND
I/OPB11

三、功能需求

1. 卡片注册功能

  • 将PB0引脚接地(低电平)进入注册模式
  • 在注册模式下刷NFC卡,该卡将被注册
  • 最多支持5张注册卡
  • 注册成功显示"Card ID: XX XX XX XX"和"注册成功"
  • 注册成功LED闪烁3次作为提示

2. 卡片认证功能(正常使用模式)

  • PB0保持高电平(默认上拉)为正常使用模式
  • 刷已注册卡:显示"Card ID: XX XX XX XX"和"认证通过",蜂鸣器响两声
  • 刷未注册卡:显示"Card ID: XX XX XX XX"和"认证失败",蜂鸣器响三声

3. 门禁控制功能

刷卡动作逻辑:

  • 第1次刷已注册卡:按暂停键 → 按开门键(门开启)
  • 第2次刷已注册卡:按暂停键 → 按关门键(门关闭)
  • 循环往复

开门保护:

  • 开门3秒后自动按暂停键,防止门开过大

4. 蜂鸣器声音提示

场景声音模式
注册卡刷卡成功两声短响(嘀-嘀)
未注册卡刷卡三声长响(嘟-嘟-嘟)

5. OLED显示界面

场景显示内容
系统启动“=== 欢迎 ===” + “请刷卡”
注册模式刷卡“Card ID: XX XX XX XX” + “注册成功”
已注册卡刷卡“Card ID: XX XX XX XX” + “认证成功”
未注册卡刷卡“Card ID: XX XX XX XX” + “认证失败L”
门已暂停“Door Paused”
3秒无操作恢复"=== 欢迎 ===" + “请刷卡”

四、技术要求

1. 通信方式

  • RC522: 软件SPI模拟(不使用硬件SPI)
  • OLED: 软件I2C模拟(不使用硬件I2C)

2. 编译工具链

  • 编译器: arm-none-eabi-gcc
  • 构建系统: CMake
  • 烧录工具: OpenOCD + ST-Link

3. 驱动要求

  • 禁用HAL库的硬件I2C、SPI驱动
  • 全部使用GPIO模拟实现

五、代码文件结构

--- ## 六、关键函数说明 | 函数名 | 功能 | |-------|------| | `LED_Blink(times, delay)` | LED闪烁指定次数 | | `Buzzer_Beep(duration)` | 蜂鸣器响指定时长 | | `Buzzer_Success()` | 成功提示音(两声短响) | | `Buzzer_Fail()` | 失败提示音(三声长响) | | `CheckRegisteredCard(cardID)` | 检查卡是否已注册 | | `RegisterCard(cardID)` | 注册新卡 | | `ControlDoor(command)` | 控制门('O'=开门,'C'=关门,'P'=暂停) | | `DisplayCardID(cardID, isRegistered)` | 显示卡号和认证状态 | | `RC522_ReadCardID(cardID)` | 读取NFC卡ID | | `OLED_Init()` | OLED初始化 | | `OLED_ShowString()` | OLED显示字符串 | --- ## 七、使用流程 ### 1. 首次使用 - 注册卡片 1. 将PB0引脚接地(低电平) 2. 给STM32上电 3. 刷需要注册的NFC卡 4. 显示"Register OK"表示注册成功 5. 断开PB0接地,恢复正常使用 ### 2. 正常使用 1. 确保PB0处于高电平状态 2. 刷已注册卡控制门的开/关 3. 未注册卡会触发报警提示 # 实验分析
http://www.jsqmd.com/news/867818/

相关文章:

  • CANN ONNX 模型生态兼容实战:从模型导入、算子映射到常见报错排查的全流程指南
  • J-Link GD32F303CC 连接与速度测试报告
  • 实测taotoken在不同时段api调用的响应延迟与稳定性表现
  • python校园篮球场地管理系统
  • 【c++面向对象编程】第43篇:可变参数模板(C++11):优雅处理不定长参数
  • 工业云脑:序章:数据飞向云端,工厂拥有了“新大脑”
  • Joy-Con Toolkit:解锁任天堂手柄终极自定义的3大核心技术方案
  • 【从0到1:一个篮球迷的“全栈执念”】后端+小程序全开源,跑起来就是完整社区
  • 在AWS中国区实现EKS跨VPC跨区域实现节点加入集群的实践
  • python游泳用品专卖店系统
  • ElevenLabs江苏话语音模型训练全链路拆解:从200小时带标注吴语语料清洗,到MOS得分达4.13的关键超参组合
  • 题解:Atcoder Regular Contest++ 220 D - Long Trail
  • 英伟达再创历史新高:AI浪潮下的芯片、存储与智能体新时代
  • 2026年国内AI+HR SaaS 口碑榜:谁在领跑中国人力资源数智化?
  • 弦理论,能从少数假设中自然浮现吗?
  • AI Agent替代房产顾问?实测对比报告:12城27个项目的人效、客诉率与成交周期数据全公开
  • 思源黑体TTF构建指南:免费商用多语言字体的终极解决方案
  • 【芯片测试】:Driver、Comparator、PMU 与 Active Load
  • 如何快速构建稳定测试环境:Chrome for Testing 实战指南
  • 电商平台SQL数据层设计实战指南
  • 2026年5月无锡DLP服务商深度解析:如何选择专业数据防泄漏方案 - 2026年企业推荐榜
  • 【ChatGPT代码生成能力极限测试】:20年架构师亲测17类编程场景,92.6%生成代码需人工重写?
  • 前端开发者最后的护城河:Lovable思维训练营(仅开放300个名额|含20年沉淀的17个诊断矩阵)
  • 曝OpenAI日亏超5亿,但Anthropic快盈利了
  • c++我的世界
  • Linux grep 文本过滤与正则实战——日志筛选、文本匹配神器
  • 鸿蒙云端相册页面构建:最近照片网格与备份队列模块详解
  • SQL工程师的日常:从数据守护者到业务赋能者
  • KMS_VL_ALL_AIO终极指南:三步永久激活Windows和Office系统
  • Linux sed 流编辑器实战 —— 批量修改文本、替换、删除、插入(运维必备)