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 ...
随机推荐
- Android下使用busybox的ifconfig
busybox ifconfig eth0 10.0.16.45 netmask 255.255.254.0 broadcast 10.0.16.186busybox route add defaul ...
- JDBC基础学习(一)—JDBC的增删改查
一.数据的持久化 持久化(persistence): 把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,数据持久化意味着将内存中的数据保存到硬盘上加以固化,而持久化的实现过程大多通过各 ...
- Kubernetes环境下的各种调试方法
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文介绍在Kubernetes环境下的调试方法,希望对读者有用.如果关 ...
- App字体大小不随系统改变而改变
转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6713724.html 在 "设置" , "显示" , " ...
- 【Linux配置】vim配置文件内容
vim的配置 文件:~/.vimrc 在自己的家目录中的.vimrc文件进行编辑配置 设置如下: set nu "序号 set tabstop= "tab键的大小 set show ...
- C#,VB.NET 如何将Excel转换为Text
在工作中,有时我们需要转换文档的格式,之前已经跟大家介绍过了如何将Excel转换为PDF.今天将与大家分享如何将Excel转换为Text.这次我使用的依然是免费版的Spire.XLS for .NET ...
- Java设计模式:桥接模式
问题提出 生活中有很多事物集合,设为A1,A2......Am ,而每个事物都有功能F1,F2....Fn. 例如邮局的发送业务.简单模拟有两类事物:信件和包裹,均有平邮和挂号邮寄功能.程序设计中如何 ...
- JS判断值是否是正数
1.使用isNaN()函数 isNaN()的缺点就在于 null.空格以及空串会被按照0来处理 NaN: Not a Number /** *判断是否是数字 * **/ function isReal ...
- Vim常用操作-快速删除括号中内容。
如果你和我一样,希望拥有众多工具,发挥工具最大执行效率,让工作事半功倍的话,我推荐你来使用下 Vim. 刚接触Vim 会觉得它的学习曲线非常陡峭,要记住很多命令,操作太复杂.所以这个系列的分享,不会教 ...
- mysql 关联查询 索引不起作用原因记录
业务逻辑如下:查询某篇文章的评论列表,且列出评论人及被评论人的昵称.头像. 先看一下表结构 评论表: 评论表的索引: 用户表: 用户表的索引: 查询语句如下: SELECT t1.comment_id ...