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

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

3天内不再提示

RC522读写程序代码分享

van 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
    +关注

    关注

    2239

    文章

    10673

    浏览量

    348770
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66772
  • RC522
    +关注

    关注

    7

    文章

    52

    浏览量

    23723
收藏 人收藏

    评论

    相关推荐

    RC522寻卡问题

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

    RC522资料

    RC522官方代码
    发表于 08-30 11:58

    基于RC522实现的读卡器的上位机分享!

    上位机软件功能:1、识别进入刷卡区的卡并获取卡类型和序列号;2、实现对卡中EEPROM的每个块进行读写操作(Block 0只能读);3、实现加值和减值操作,同时获取某一块的值;4、实现对RC522
    发表于 10-08 22:43

    SPI时序读写RFID-RC522的方法

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

    SI522与恩智浦RC522读卡芯片区别开发资料

    16mASi522 主要优势点:1. 直接PIN2PIN 兼容RC522,与FM17550/FM17520/RM522/ZS3801/WS18502. 完全替换RC522,接收功耗下降
    发表于 03-11 13:49

    从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 402次下载

    RC522速成教程

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

    rc522举例程序

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

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

    这是关于RC522飞利浦的原厂代码,由于其他内容较大,所以只能分开来上传,需要的小伙伴可以发的其他资料,包含RC522 RFID 射频模块的硬件电路部分和相关参考资料,以及天线计算工具。
    发表于 11-03 11:49 83次下载
    <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.寻卡并得到其序列号总结前言用
    发表于 12-04 20:36 54次下载
    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 6次下载

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

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