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 ...
随机推荐
- lumen 中的 .env 配置文件简介和适用场景
lumen 是 laravel 的衍生品,核心功能的使用和 laravel 都是一致的,但配置文件这一方面,lumen 在 laravel 的基础上增加了更简便的配置方式: lumen 采用了 Dot ...
- Spring基础学习(五)—事务管理
一.事务基本认识 1.事务的概述 为了保证数据库中数据的一致性,数据的操作应当是离散的成组的逻辑单元.当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应当全部视 ...
- 自行扩展 FineUIMvc 通知对话框(多个并排显示不重叠,支持最新的显示在最上方)
声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 这篇文章我们将改造 FineUIMvc 默认的通知对话框,使得同时显示多个也不会重叠.并提前出一个公共的JS文件,供大家使用. ...
- 关于constraint的用法
1.主键约束:要对一个列加主键约束的话,这列就必须要满足的条件就是非空因为主键约束:就是对一个列进行了约束,约束为(非空.不重复)以下是代码 要对一个列加主键,列名为id,表名为emp格式为:alt ...
- 浅谈C#数组(二)
六.枚举集合 在foreach语句中使用枚举,可以迭代集合中的元素,且无需知道集合中元素的个数.foreach语句使用一个枚举器.foreach会调用实现了IEnumerable接口的集合类中的Get ...
- Wireshark的专家模式
-------------------------------本文作为留档文章已备查看----------------------------------- Wireshark的每个协议的解析器(原始 ...
- Springmvc的工作流程
1.向服务器发送http请求,请求被前端控制器DispatcherServlet捕获. 2.DispatcherServlet根据servlet.xml中的配置进行URL解析后,得到(URL),然后根 ...
- Mysql PHP
if(_mysql.query(sql.data()) < 0) 这里不能使用sql.c_str() 因为这个会有‘\0’而在Mysql查询中,这个0是不希望出现的.
- 推荐免费的svn空间
可能大部分人跟我一样办公和其他环境的代码同步选择用github,但github免费用户的代码是公开的.如果想做商业项目,用免费的github账号就不合适了,这里推荐的免费svn是个不错的选择. 1.h ...
- JavaScript中变量、参数、函数之间的关系
------------------------------ 废话不多说,直接开始. 我们看一段代码(参考其他资料所得) <script type="text/javascript&q ...