目录

效果如图:

cube配置:

代码部分:


个人认为,这个比之前的按键解锁和蓝牙好玩哈哈哈哈==

效果如图:

首先,这个模块叫做RFID RC522射频模块,上面一共有8个引脚,其中IRQ引脚保持悬空即可,我们只需要接另外7个引脚。SDA引脚为数据接口,SCK引脚为时钟接口,MOSI引脚为SPI接口主出从入,MISO引脚为SPI接口主入从出,GND接地,RST为复位信号,3.3V接单片机3.3V。

这里涉及到SPI通讯协议,参考: (41条消息) SPI协议详解(图文并茂+超详细)_小麦大叔的博客-CSDN博客_spi协议

cube配置:

使能SPI功能,模式选择>Full-Duplex Master 全双工。

代码部分:

定义两个数组,一个是用来读取的卡号,一个存放自己正确的卡号,要想知道自己的卡号可以手机上下载一个软件NFC Writer可以读取自己卡片的信息,然后将其写入数组用于判断。

 /* USER CODE BEGIN 1 */uint8_t readUid[5]; uint8_t UID[5]={0x43,0x58,0x36,0x84};//自己的卡号/* USER CODE END 1 */

进行RC522初始化

/* USER CODE BEGIN 2 */MFRC_Init();PCD_Reset();printf("RC522初始化成功\r\n");/* USER CODE END 2 */void MFRC_Init(void)
{RS522_NSS(1);RS522_RST(1);
}void PCD_Reset(void)//PCD复位
{/*硬复位*/RS522_RST(1);//用到复位引脚osDelay(2);RS522_RST(0);osDelay(2);RS522_RST(1);osDelay(2);/*软复位*/MFRC_WriteReg(MFRC_CommandReg, MFRC_RESETPHASE);osDelay(2);/*复位后的初始化配置*/MFRC_WriteReg(MFRC_ModeReg, 0x3D);              //CRC初始值0x6363MFRC_WriteReg(MFRC_TReloadRegL, 30);            //定时器重装值MFRC_WriteReg(MFRC_TReloadRegH, 0);MFRC_WriteReg(MFRC_TModeReg, 0x8D);             //定时器设置MFRC_WriteReg(MFRC_TPrescalerReg, 0x3E);        //定时器预分频值MFRC_WriteReg(MFRC_TxAutoReg, 0x40);            //100%ASKPCD_AntennaOff();                               //关天线osDelay(2);PCD_AntennaOn();                                //开天线
}

while(1)中进行卡号比对,然后正确干什么,错误干什么:

读取卡号函数:

uint8_t readCard(uint8_t *readUid,void(*funCallBack)(void))
{uint8_t Temp[5];if (PCD_Request(0x52, Temp) == 0){if (PCD_Anticoll(readUid) == 0){if(funCallBack != NULL)funCallBack();return 0;} }return 1;
}
 while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */if(!readCard(readUid,NULL)){printf("卡号:%x-%x-%x-%x\n",readUid[0],readUid[1],readUid[2],readUid[3]);if(!strncmp((char *)readUid,(char *)UID,4)){OLED_Clear();OLED_ShowCHinese(0,0,18); //卡OLED_ShowCHinese(20,0,19);//号OLED_ShowCHinese(40,0,10);//正OLED_ShowCHinese(60,0,11);//确OLED_ShowChar(80,0,'!',16);//!OLED_ShowCHinese(0,3,0); //门 OLED_ShowCHinese(20,3,1);//已OLED_ShowCHinese(40,3,4);//打OLED_ShowCHinese(60,3,5);//开OLED_ShowChar(80,3,'!',16);//!              }else{OLED_Clear();OLED_ShowCHinese(0,0,18); //卡OLED_ShowCHinese(20,0,19);//号OLED_ShowCHinese(40,0,8);//错OLED_ShowCHinese(60,0,9);//误OLED_ShowChar(80,0,'!',16);//!            }}HAL_Delay (500);}/* USER CODE END 3 */
/*PCD函数声明*/
void PCD_Init(void);
void PCD_Reset(void);
void PCD_AntennaOn(void);
void PCD_AntennaOff(void);
char PCD_Request(uint8_t RequestMode, uint8_t *pCardType);  //寻卡,并返回卡的类型
char PCD_Anticoll(uint8_t *pSnr);                           //防冲突,返回卡号
char PCD_Select(uint8_t *pSnr);                             //选卡
char PCD_AuthState(uint8_t AuthMode, uint8_t BlockAddr, uint8_t *pKey, uint8_t *pSnr); //验证密码(密码A和密码B)
char PCD_WriteBlock(uint8_t BlockAddr, uint8_t *pData);   //写数据
char PCD_ReadBlock(uint8_t BlockAddr, uint8_t *pData);    //读数据
char PCD_Value(uint8_t mode, uint8_t BlockAddr, uint8_t *pValue);
char PCD_BakValue(uint8_t sourceBlockAddr, uint8_t goalBlockAddr);
char PCD_Halt(void);
void StartIDcardTask(void const * argument);

STM32智能门锁学习二,RFID刷卡解锁相关推荐

  1. 基于STM32单片机智能RFID刷卡汽车位锁设计(开题报告)

    基于STM32单片机智能RFID刷卡汽车位锁设计(开题报告) 文章目录 基于STM32单片机智能RFID刷卡汽车位锁设计(开题报告) 一.课题的背景及意义 二.国内外研究状况: 三.系统功能分析及体系 ...

  2. 基于STM32的多功能门禁系统(AS608指纹识别、密码解锁、刷卡解锁)

    目录 一.项目功能 二.视频 三.原理图 4.材料选择 5.部分程序 资料下载地址:基于STM32的多功能门禁系统 一.项目功能 1.AS608指纹解锁:可以录入.删除.验证指纹: 2.密码解锁:可以 ...

  3. 基于STM32单片机智能RFID刷卡汽车位锁设计(论文

    基于STM32单片机智能RFID刷卡汽车位锁设计(论文) 摘要 在车位日益紧张的今天,如何避免私家车位被他人抢占,是令人头痛的事.日前面市的一种新型车位锁,不仅有效解决了这一问题,还可对车辆起到防盗作 ...

  4. 75、基于STM32单片机RFID刷卡签到考勤门禁系统无线蓝牙/wifi设计

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.程序源码 七.资料包括 摘要 对于高校管理而言,学生考勤一直是不可忽视的 ...

  5. 基于STM32智能RFID刷卡汽车位锁控制系统设计

    百度网盘下载地址(945):点击下载 前言: 在车位日益紧张的今天,如何避免私家车位被他人抢占,是令人头痛的事.日前面市的一种新型车位锁,不仅有效解决了这一问题,还可对车辆起到防盗作用,深受车主的喜爱 ...

  6. 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础

    上篇文章 单片机入门学习四 STM32单片机学习一 跑马灯程序和创建工程 仅介绍了入门程序及其编译运行过程,下面开始对stm32的一些基础知识做一个记录. 1.stm32f103zet6(上篇问题3 ...

  7. STM32智能门锁学习一,按键解锁,蓝牙解锁、oled显示,步进电机

    经历了电脑重装系统之后的第一篇博客== 这一章主要介绍薄膜按键,蓝牙模块,oled显示屏,还有步进电机的学习.(板子型号是stm32f103c8t6,基于HAL库) 目录 一.oled显示屏 二.步进 ...

  8. STM32--RFID无线射频技术(RC522刷卡模块)

    文章目录 1.RFID的概念 2.RFID的工作原理 (1)RFID中间件的概念 (2)RFID中间件具有以下特点: (3)RFID中间件的意义: 3.RFID频率划分 (1)RFID低频特性 (2) ...

  9. LPC11C14刷卡门锁

    目录 产品开发平台 产品使用方法 结构框图 产品运行流程 产品运行界面 程序源码 主函数 main.c 温度传感器驱动 dth11.h dth11.c OLED显示屏驱动 ascii.h spi.h ...

最新文章

  1. 在非互联网公司?!算法工程师的工作内容及心得建议
  2. STM32F103之FLASH组织
  3. 设计模式-静态工厂之服务提供者框架
  4. 大家放松下,仿《大腕》经典对白
  5. java BigDecimal八种舍入模式
  6. JVMTI标记如何影响GC暂停
  7. java 字符串转dom对象_xml类型的字符串转换为Dom对象
  8. 苹果本周四将发布 OS X Yosemite 公开测试版
  9. Jbpm工作流表补数记录
  10. pyspider all 只启动了_好程序员大数据分享Spark任务和集群启动流程
  11. pr基础操作与快捷键(基于pr cc 2017)
  12. 计算机类专业学习难度排行,大学最难学的十大专业排名
  13. Google I/O 2021: 在重要时刻提供帮助
  14. samtools从fastq到bam再到bigwig(bw)
  15. 傻子也能看懂的迪杰斯特拉算法(转)
  16. Android之Mob第三方短信验证服务
  17. metis 多线程图划分论文笔记
  18. Android基础入门教程——4.3.1 BroadcastReceiver牛刀小试
  19. 矢量数据下载【道路路网(公路、铁路)、水系、建筑物轮廓、地名等等】
  20. 怎样把计算机添加到网络打印机,电脑怎么添加打印机共享

热门文章

  1. 蓝桥杯练习题 Fibonacci数列
  2. el-pagination分页自定义前往第几页样式(下拉框形式)
  3. ps 索引模式 导出变成了白色背景
  4. Mybatis官方网站
  5. 软件评测师题库--操作系统基础知识
  6. 这些年我的不足(不够专注,不善于推迟满足感,阅读量不够……-无网不剩 http://t.cn/zOe1RPz)
  7. 解决绿C(C与C++程序设计学习与实验系统 2015)软件程序中文出现乱码问题
  8. eclipse 的RSE插件不错
  9. 怎样识别app网站服务器在国外,APP服务器你了解多少?什么是海外app服务器
  10. 分页符怎么删除,word不要的页面删不掉