0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RC522读写程序代码分享

innswaiter 2023-06-05 14:46 次阅读
#include "stm32f10x.h"
#include "stm32f10x_spi.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#include "delay.h"
#include "mfrc522.h"
#include "stdio.h"

#define     SPI_CE_LOW()      GPIO_ResetBits(GPIOA,GPIO_Pin_4)
#define     SPI_CE_HIGH()     GPIO_SetBits(GPIOA,GPIO_Pin_4)

void SPI1_Init(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);

    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;      
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    SPI_InitTypeDef SPI_InitStructure;
    SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
    SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
    SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
    SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
    SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
    SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
    SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
    SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
    SPI_InitStructure.SPI_CRCPolynomial = 7;
    SPI_Init(SPI1, &SPI_InitStructure);

    SPI_Cmd(SPI1, ENABLE);
}

uint8_t SPI1_SendByte(uint8_t byte)
{
    while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);
    SPI_I2S_SendData(SPI1, byte);

    while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) ==
RESET); return SPI_I2S_ReceiveData(SPI1); }

void MFRC522_Reset(void) { SPI_CE_LOW(); SPI1_SendByte(0x1B); SPI_CE_HIGH(); }

uint8_t MFRC522_ReadRegister(uint8_t addr) { SPI_CE_LOW(); uint8_t data; SPI1_SendByte(0x80 | addr); data = SPI1_SendByte(0x00); SPI_CE_HIGH(); return data; }

void MFRC522_WriteRegister(uint8_t addr, uint8_t val) { SPI_CE_LOW(); SPI1_SendByte(0x7F & addr); SPI1_SendByte(val); SPI_CE_HIGH(); }

void MFRC522_ReadRegisters(uint8_t addr, uint8_t count, uint8_t *values) { SPI_CE_LOW(); SPI1_SendByte(0x80 | addr); for(uint8_t i=0;i
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2265

    文章

    10870

    浏览量

    354648
  • 代码
    +关注

    关注

    30

    文章

    4741

    浏览量

    68314
  • RC522
    +关注

    关注

    7

    文章

    55

    浏览量

    23932
收藏 人收藏

    评论

    相关推荐

    RC522寻卡问题

    我采用的是stm8s105k4单片机,最近操作RC522,模块是淘宝买的。电源没接错(USB-STLINK上的3.3v,还有3.3v是接到最小系统板子上的),io也与单片机连接正确。在程序上,读写
    发表于 08-18 20:18

    SPI时序读写RFID-RC522的方法

    .Cubemax配置四.核心代码延时函数写RC522寄存器读RC522寄存器复位RC522使用代码1.复位2.寻卡并得到其序列号总结前言用R
    发表于 02-08 06:13

    从0开始设计_基于STM32F1的RC522读写

    从0开始设计_基于STM32F1的RC522读写卡1.介绍看网上很多RC522的教程都是基于读卡ID的,这个对于很多应用来说其实没有什么用,最近刚好有个项目需要读写卡,而
    发表于 04-22 17:02

    SI522如何兼容:RC522 FM17520 CV520 资料

    si522优势点:相比于rc522 si522完全替换,不需要做任何更改,同时接收模式下功耗低10ma左右,si522为16MA。相比于rc522
    发表于 02-24 14:37

    51_rc522读写程序

    51控制rc522读取m1卡的程序,亲测可用。有需要的可以下载看看。。。
    发表于 11-11 17:15 403次下载

    RC522速成教程

    RFID RC522速成教程,简单易学,实测可用。
    发表于 03-28 16:00 58次下载

    rc522举例程序

    快速应用rc522
    发表于 01-05 14:42 36次下载

    使用51单片机设计的RFID RC522智能钱包程序免费下载

    基于51单片机的RFID RC522智能钱包,这个程序主要演示的是RFID RC522智能钱包中的设置及扣款功能,相信会扣款那么充值也就改一个数字的事,具体的功能要自己根据实际情况进行编写,下面是
    发表于 08-28 17:29 65次下载
    使用51单片机设计的RFID <b class='flag-5'>RC522</b>智能钱包<b class='flag-5'>程序</b>免费下载

    RFID模块RC522程序和电路图等详细资料合集免费下载

    本文档的主要内容详细介绍的是RFID模块RC522程序和电路图等详细资料合集免费下载,里面有相关的STM32,51单片机,Na1000的源程序RC522 mini 尺寸图,
    发表于 03-10 08:00 123次下载
    RFID模块<b class='flag-5'>RC522</b>的<b class='flag-5'>程序</b>和电路图等详细资料合集免费下载

    RC522 RFID 射频模块原厂代码免费下载

    这是关于RC522飞利浦的原厂代码,由于其他内容较大,所以只能分开来上传,需要的小伙伴可以发的其他资料,包含RC522 RFID 射频模块的硬件电路部分和相关参考资料,以及天线计算工具。
    发表于 11-03 11:49 95次下载
    <b class='flag-5'>RC522</b> RFID 射频模块原厂<b class='flag-5'>代码</b>免费下载

    NFC之基于51单片机rc522读写

    NFC之基于51单片机rc522读写程序,端口定义上位机修改com口
    发表于 11-23 16:23 65次下载
    NFC之基于51单片机<b class='flag-5'>rc522</b>的<b class='flag-5'>读写</b>

    STM32 Cubemax(十三) ——SPI时序读写RFID-RC522

    .Cubemax配置四.核心代码延时函数写RC522寄存器读RC522寄存器复位RC522使用代码1.复位2.寻卡并得到其序列号总结前言用R
    发表于 12-04 20:36 55次下载
    STM32 Cubemax(十三) ——SPI时序<b class='flag-5'>读写</b>RFID-<b class='flag-5'>RC522</b>

    基于MF RC522的RFID读写器的设计

    本设计采用 STM32F103ZET6 为微控制器,结合 MIAFER 1 卡、MF RC522 模块、LCD 等部分设计并实现了基于 MF RC522 的 RFID 读写器的设计。其主要 功能
    发表于 03-06 10:57 8次下载

    基于CW32的RC522刷卡模块的应用

    基于CW32的RC522刷卡模块的应用
    的头像 发表于 11-02 14:53 1038次阅读
    基于CW32的<b class='flag-5'>RC522</b>刷卡模块的应用

    Air780EP之RC522开发板,你了解吗?

    ​本文讲解合宙Air780EP开发板RC522实例。 本文档适用于Air780EP开发板; 关联文档和使用工具; rc522 - rc522 非接触式读写卡驱动 - LuatOS 文档
    的头像 发表于 11-03 08:21 158次阅读
    Air780EP之<b class='flag-5'>RC522</b>开发板,你了解吗?