0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354286
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4722

    瀏覽量

    68229
  • RC522
    +關(guān)注

    關(guān)注

    7

    文章

    55

    瀏覽量

    23919
收藏 人收藏

    評論

    相關(guān)推薦

    RC522尋卡問題

    我采用的是stm8s105k4單片機(jī),最近操作RC522,模塊是淘寶買的。電源沒接錯(USB-STLINK上的3.3v,還有3.3v是接到最小系統(tǒng)板子上的),io也與單片機(jī)連接正確。在程序上,讀寫
    發(fā)表于 08-18 20:18

    SPI時(shí)序讀寫RFID-RC522的方法

    .Cubemax配置四.核心代碼延時(shí)函數(shù)寫RC522寄存器讀RC522寄存器復(fù)位RC522使用代碼1.復(fù)位2.尋卡并得到其序列號總結(jié)前言用R
    發(fā)表于 02-08 06:13

    從0開始設(shè)計(jì)_基于STM32F1的RC522讀寫

    從0開始設(shè)計(jì)_基于STM32F1的RC522讀寫卡1.介紹看網(wǎng)上很多RC522的教程都是基于讀卡ID的,這個對于很多應(yīng)用來說其實(shí)沒有什么用,最近剛好有個項(xiàng)目需要讀寫卡,而
    發(fā)表于 04-22 17:02

    SI522如何兼容:RC522 FM17520 CV520 資料

    si522優(yōu)勢點(diǎn):相比于rc522 si522完全替換,不需要做任何更改,同時(shí)接收模式下功耗低10ma左右,si522為16MA。相比于rc522
    發(fā)表于 02-24 14:37

    51_rc522讀寫程序

    51控制rc522讀取m1卡的程序,親測可用。有需要的可以下載看看。。。
    發(fā)表于 11-11 17:15 ?403次下載

    RC522速成教程

    RFID RC522速成教程,簡單易學(xué),實(shí)測可用。
    發(fā)表于 03-28 16:00 ?58次下載

    rc522舉例程序

    快速應(yīng)用rc522
    發(fā)表于 01-05 14:42 ?35次下載

    使用51單片機(jī)設(shè)計(jì)的RFID RC522智能錢包程序免費(fèi)下載

    基于51單片機(jī)的RFID RC522智能錢包,這個程序主要演示的是RFID RC522智能錢包中的設(shè)置及扣款功能,相信會扣款那么充值也就改一個數(shù)字的事,具體的功能要自己根據(jù)實(shí)際情況進(jìn)行編寫,下面是
    發(fā)表于 08-28 17:29 ?65次下載
    使用51單片機(jī)設(shè)計(jì)的RFID <b class='flag-5'>RC522</b>智能錢包<b class='flag-5'>程序</b>免費(fèi)下載

    RFID模塊RC522程序和電路圖等詳細(xì)資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是RFID模塊RC522程序和電路圖等詳細(xì)資料合集免費(fèi)下載,里面有相關(guān)的STM32,51單片機(jī),Na1000的源程序,RC522 mini 尺寸圖,
    發(fā)表于 03-10 08:00 ?122次下載
    RFID模塊<b class='flag-5'>RC522</b>的<b class='flag-5'>程序</b>和電路圖等詳細(xì)資料合集免費(fèi)下載

    RC522 RFID 射頻模塊原廠代碼免費(fèi)下載

    這是關(guān)于RC522飛利浦的原廠代碼,由于其他內(nèi)容較大,所以只能分開來上傳,需要的小伙伴可以發(fā)的其他資料,包含RC522 RFID 射頻模塊的硬件電路部分和相關(guān)參考資料,以及天線計(jì)算工具。
    發(fā)表于 11-03 11:49 ?95次下載
    <b class='flag-5'>RC522</b> RFID 射頻模塊原廠<b class='flag-5'>代碼</b>免費(fèi)下載

    NFC之基于51單片機(jī)rc522讀寫

    NFC之基于51單片機(jī)rc522讀寫程序,端口定義上位機(jī)修改com口
    發(fā)表于 11-23 16:23 ?65次下載
    NFC之基于51單片機(jī)<b class='flag-5'>rc522</b>的<b class='flag-5'>讀寫</b>

    STM32 Cubemax(十三) ——SPI時(shí)序讀寫RFID-RC522

    .Cubemax配置四.核心代碼延時(shí)函數(shù)寫RC522寄存器讀RC522寄存器復(fù)位RC522使用代碼1.復(fù)位2.尋卡并得到其序列號總結(jié)前言用R
    發(fā)表于 12-04 20:36 ?55次下載
    STM32 Cubemax(十三) ——SPI時(shí)序<b class='flag-5'>讀寫</b>RFID-<b class='flag-5'>RC522</b>

    基于MF RC522的RFID讀寫器的設(shè)計(jì)

    本設(shè)計(jì)采用 STM32F103ZET6 為微控制器,結(jié)合 MIAFER 1 卡、MF RC522 模塊、LCD 等部分設(shè)計(jì)并實(shí)現(xiàn)了基于 MF RC522 的 RFID 讀寫器的設(shè)計(jì)。其主要 功能
    發(fā)表于 03-06 10:57 ?8次下載

    基于CW32的RC522刷卡模塊的應(yīng)用

    基于CW32的RC522刷卡模塊的應(yīng)用
    的頭像 發(fā)表于 11-02 14:53 ?1014次閱讀
    基于CW32的<b class='flag-5'>RC522</b>刷卡模塊的應(yīng)用

    Air780EP之RC522開發(fā)板,你了解嗎?

    ?本文講解合宙Air780EP開發(fā)板RC522實(shí)例。 本文檔適用于Air780EP開發(fā)板; 關(guān)聯(lián)文檔和使用工具; rc522 - rc522 非接觸式讀寫卡驅(qū)動 - LuatOS 文檔
    的頭像 發(fā)表于 11-03 08:21 ?135次閱讀
    Air780EP之<b class='flag-5'>RC522</b>開發(fā)板,你了解嗎?