NFC门禁控制系统 - 需求文档一、硬件配置1. 主控芯片型号: STM32F103C8T6封装: LQFP482. 外设清单外设型号数量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电源GNDGNDRSTPA3SDAPA4SCKPA5MOSIPA7MISOPA6IRQ悬空OLED屏幕接线OLED引脚连接GNDGNDVCC3.3VSCLPA0SDAPA1遥控器控制通过BL1551STM32 PB8 ── BL1551 ── 遥控器暂停按钮 STM32 PB9 ── BL1551 ── 遥控器开门按钮 STM32 PB10 ── BL1551 ── 遥控器关门按钮有源蜂鸣器接线蜂鸣器引脚连接GNDGNDI/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模拟不使用硬件SPIOLED: 软件I2C模拟不使用硬件I2C2. 编译工具链编译器: arm-none-eabi-gcc构建系统: CMake烧录工具: OpenOCD ST-Link3. 驱动要求禁用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. 未注册卡会触发报警提示 # 实验分析