STM32的RFID射频读写控制装置
,大二上学期做的,过了很久,先上一下图:

这并不是做个最后一版;主体是RC552+STM32+1062;蜂鸣器,继电器,LED等;反正最后的效果就是,刷一下卡,1602显示一下持卡人(需要提前注册,注册方法也就是在数组里多添加几个编号,哈哈,毕竟没有数据库暂时也只能想到这样了);然后蜂鸣器响,灯亮,继电器开;
贴一下关键代码:
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "led.h"
#include "lcd1602.h"
#include "key.h"
#include <stdio.h>
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#include "main.h"
#include "mfrc522.h"
#include "stm32f10x.h"
#include "exti.h" USART_InitTypeDef USART_InitStructure; void GPIO_ini()
{
GPIO_InitTypeDef GPIO_InitStructure; /* Enable the GPIO Clock */
RCC_APB2PeriphClockCmd(MF522_RST_CLK, ENABLE); /* Configure the GPIO pin */
GPIO_InitStructure.GPIO_Pin = MF522_RST_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(MF522_RST_PORT, &GPIO_InitStructure); /* Enable the GPIO Clock */
RCC_APB2PeriphClockCmd(MF522_MISO_CLK, ENABLE); /* Configure the GPIO pin */
GPIO_InitStructure.GPIO_Pin = MF522_MISO_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(MF522_MISO_PORT, &GPIO_InitStructure); /* Enable the GPIO Clock */
RCC_APB2PeriphClockCmd(MF522_MOSI_CLK, ENABLE); /* Configure the GPIO pin */
GPIO_InitStructure.GPIO_Pin = MF522_MOSI_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(MF522_MOSI_PORT, &GPIO_InitStructure); /* Enable the GPIO Clock */
RCC_APB2PeriphClockCmd(MF522_SCK_CLK, ENABLE); /* Configure the GPIO pin */
GPIO_InitStructure.GPIO_Pin = MF522_SCK_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(MF522_SCK_PORT, &GPIO_InitStructure); /* Enable the GPIO Clock */
RCC_APB2PeriphClockCmd(MF522_NSS_CLK, ENABLE); /* Configure the GPIO pin */
GPIO_InitStructure.GPIO_Pin = MF522_NSS_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(MF522_NSS_PORT, &GPIO_InitStructure); /* Enable the GPIO Clock */
RCC_APB2PeriphClockCmd(LED_CLK, ENABLE); /* Configure the GPIO pin */
GPIO_InitStructure.GPIO_Pin = LED_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_Init(LED_PORT, &GPIO_InitStructure);
} void InitializeSystem()
{
//LED_OFF;
delay_10ms();
PcdReset();
PcdAntennaOff();
PcdAntennaOn();
M500PcdConfigISOType( 'A' );
//LED_ON;
delay_10ms();
//LED_OFF;
delay_10ms();
//LED_ON;
delay_10ms();
//LED_OFF;
}
int main(void)
{ char status;
unsigned char snr, buf[], TagType[], SelectedSnr[], DefaultKey[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
u8 t;
u8 str[] = "Jiaomengke";
u8 str2[] = "Jiaomengke2";
u8 str3[] = "Jiaomengke"; delay_init();
NVIC_Configuration();
uart_init();
GPIO_Configuration();
KEY_Init();
LED_Init();
flog:
LCD1602_Init();
//LCD1602_Show_Str(0, 0, "Please put card");
LCD1602_Show_Str(, , " Please");
LCD1602_Show_Str(, , " put card");
GPIO_ini();
InitializeSystem( ); while()
{ status= PcdRequest(REQ_ALL,TagType);
if(!status)
{
status = PcdAnticoll(SelectedSnr);
if(!status)
{
status=PcdSelect(SelectedSnr);
if(!status)
{
snr = ;
status = PcdAuthState(KEYA, (snr*+), DefaultKey, SelectedSnr);// УÑé0ÉÈÇøÃÜÂë
{
if(!status)
{
status = PcdRead((snr*+), buf); //PcdWrite((snr*4+1), buf); // ¶ÁÈ¡0ÉÈÇø1¿éÊý¾Ý
if(!status && (SelectedSnr[]==0x3e||SelectedSnr[]==0xf6||SelectedSnr[]==0xf4||SelectedSnr[]==0xe7))
{
LED_ON;
WaitCardOff();
while()
{ LCD1602_ClearScreen();
LCD1602_Show_Str(, , " Welcome You");
if(SelectedSnr[]==0x3e)
LCD1602_Show_Str(, , str);
if(SelectedSnr[]==0xf6)
LCD1602_Show_Str(, , str1);
if(SelectedSnr[]==0xf4)
LCD1602_Show_Str(, , str2);
if(SelectedSnr[]==0xe7)
LCD1602_Show_Str(, , str3);
delay_ms();
LED_OFF;
delay_ms();
goto flog;
}
}
}
}
}
}
}
LED_OFF;
}
}
STM32的RFID射频读写控制装置的更多相关文章
- STM32 对内部FLASH读写接口函数(转)
源:STM32 对内部FLASH读写接口函数 因为要用内部FLASH代替外部EEPROM,把参数放在STM32的0x08000000+320K处,其中20K是bootloader,300K是应用程序. ...
- RFID射频卡超市购物结算系统
RFID射频卡超市购物结算系统 这段时间在做RFID射频卡超市购物结算系统,这个系统的设想来自于大学研究课题,但是我们在淘宝网上购买设备的时候淘宝店主都认为RF射频技术不好应用在超市购物结算系统,原因 ...
- 痞子衡嵌入式:i.MXRT1010, 1170型号上不一样的SNVS GPR寄存器读写控制设计
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1010, 1170型号上不一样的SNVS GPR寄存器读写控制设计. 痞子衡之前两篇文章 <在SBL项目实战中妙用i ...
- STM32学习笔记:读写内部Flash(介绍+附代码)
一.介绍 首先我们需要了解一个内存映射: stm32的flash地址起始于0x0800 0000,结束地址是0x0800 0000加上芯片实际的flash大小,不同的芯片flash大小不同. RAM起 ...
- STM32 对内部FLASH读写接口函数
因为要用内部FLASH代替外部EEPROM,把参数放在STM32的0x08000000+320K处,其中20K是bootloader,300K是应用程序. 原理:先要把整页FLASH的内容搬到RAM中 ...
- RFID射频卡超市购物结算系统问题记录--写入卡片时,后台php无法操作数据库
后台管理人员要给每件商品贴上RF卡作为唯一标识,所以要先给对应的RFID卡中写入响应的信息,我这里为了便于模拟演示只写入商品编号,价格,名称这几个字段,然后要把已经写入的商品上传后台,由后台写入数据库 ...
- stm32 HAL库编程驱动控制文件<stm32f1xx_hal_conf.h>的使能方法
@2019-01-25 [小记] 工具化.易控制.易配置.效率高: 驱动控制文件<stm32f1xx_hal_conf.h>中驱动模块使能由STM32CubeMX工具配置使能
- ARM汇编语言(3)(寄存器读写控制外设)
DAY4:ARM汇编(4) 一,GPIO编程 连接内存(二级cache),用来寻址:连接外设,用来控制: 1,GPIO,General-Purpose IO ports,通用输入输出端口, ...
- STM32: TIMER门控模式控制PWM输出长度
搞了两天单脉冲没搞定,无意中发现,这个利用主从模式的门控方式来控制一路PWM的输出长度很有效. //TIM2 PWM输出,由TIM4来控制其输出与停止 //frequency_tim2:TIM2 PW ...
随机推荐
- 进入html+css世界的正确姿势
今天,我带大家一起走进html+css的世界. HTML其实是HyperText Markup Language的缩写, 超文本标记语言.他是用于告诉浏览器这是一个网页, 也就是说告诉浏览器我是一个H ...
- SqlDataReader生成动态Lambda表达式
上一扁使用动态lambda表达式来将DataTable转换成实体,比直接用反射快了不少.主要是首行转换的时候动态生成了委托. 后面的转换都是直接调用委托,省去了多次用反射带来的性能损失. 今天在对Sq ...
- 爬虫入门系列(三):用 requests 构建知乎 API
爬虫入门系列目录: 爬虫入门系列(一):快速理解HTTP协议 爬虫入门系列(二):优雅的HTTP库requests 爬虫入门系列(三):用 requests 构建知乎 API 在爬虫系列文章 优雅的H ...
- 使用Maven整合SSM总结
项目环境: spring-4.3.7 + mybatis-3.3.0 + maven-3.3.9 + oracle11g 1. 首先使用maven引入相关依赖: pom.xml: <projec ...
- Lambda表达式效率问题
原文 http://www.importnew.com/17262.html 有许许多多关于 Java 8 中流效率的讨论,但根据 Alex Zhitnitsky 的测试结果显示:坚持使用传统的 Ja ...
- HashMap 构造函数
HashMap总共提供了三个构造函数 /** * Constructs an empty <tt>HashMap</tt> with the default initial c ...
- qt 文本中显示中文
QTextCodec *codec = QTextCodec::codecForName("utf8");QTextCodec::setCodecForLocale(codec); ...
- 在同一个系统上装两个不同版本的jdk,配置环境变量不起作用,jdk版本的切换问题
本人这台笔记本前面装了jdk8,现在准备用jdk7,我安装好了jdk7:把系统变量中的JAVA_HOME 改为 D:\java\jdk\jdk7\jdk1.7.0_67,Path 下添加如下变量,记得 ...
- 深入tornado中的Configurable
Configurable十分重要! 位于tornado.util文件中,它是一个工厂类. 我们暂且称这个类为 配置类 . 我们暂且约定:该类的子类称之为 直属配置子类 , 该类的孙类.重孙类……称之为 ...
- 详解Session分布式共享(.NET CORE版)
一.前言&回顾 在上篇文章Session分布式共享 = Session + Redis + Nginx中,好多同学留言问了我好多问题,其中印象深刻的有:nginx挂了怎么办?采用Redis的S ...