基本信息
源码名称:stm32+RC522读卡实验
源码大小:1.20M
文件格式:.zip
开发语言:C/C++
更新时间:2021-04-26
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

RC522在STM32上的应用

void delay_ns(u32 ns)
{
  u32 i;
  for(i=0;i<ns;i )
  {
    __nop();
    __nop();
    __nop();
  }
}

u8 SPIWriteByte(u8 Byte)
{
while((SPI2->SR&0X02)==0); //等待发送区空   
SPI2->DR=Byte; //发送一个byte   
while((SPI2->SR&0X01)==0);//等待接收完一个byte  
return SPI2->DR;               //返回收到的数据
}
void SPI2_Init(void)
{
// SPI_InitTypeDef  SPI_InitStructure;
//GPIO_InitTypeDef GPIO_InitStructure;
 
//配置SPI2管脚

RCC->APB2ENR|=1<<0;
RCC->APB2ENR|=1<<3;
// RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB, ENABLE);

GPIOB->CRH&=0X000FFFFF;
GPIOB->CRH|=0XB8B00000;

GPIOB->CRL&=0XFFFFFF00; //PB.1 复位
GPIOB->CRL|=0X00000033; //PB.0 片选 推挽输出
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_15;
// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
// GPIO_Init(GPIOB, &GPIO_InitStructure);
//
// GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_14;    
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; 
// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
// GPIO_Init(GPIOB, &GPIO_InitStructure);  

RCC->APB1ENR|=1<<14;


SPI2->CR1|=0<<10;//全双工模式
SPI2->CR1|=1<<9; //软件nss管理
SPI2->CR1|=1<<8;  

SPI2->CR1|=1<<2; //SPI主机
SPI2->CR1|=0<<11;//8bit数据格式
SPI2->CR1&=~0x02; //空闲模式下SCK为0 CPOL=0
SPI2->CR1&=~0x01; //数据采样从第一个时间边沿开始,CPHA=0  
SPI2->CR1|=7<<3; //Fsck=Fcpu/4
SPI2->CR1|=0<<7; //MSBfirst   
SPI2->CR1|=1<<6; //SPI设备使能
//SPIx_ReadWriteByte(0xff);//启动传输   
}