RC522一直寻卡不通过,程序都是帖子的,大佬们帮我看看吧!

2019-07-20 08:16发布

SPI_HandleTypeDef SPI2_Handler;
void SPI2_Init(void)
{
SPI2_Handler.Instance=SPI2;
SPI2_Handler.Init.Mode=SPI_MODE_MASTER;
SPI2_Handler.Init.Direction=SPI_DIRECTION_2LINES;
SPI2_Handler.Init.DataSize=SPI_DATASIZE_8BIT;
SPI2_Handler.Init.CLKPolarity=SPI_POLARITY_LOW;/////要改!,RC222是LOW.
SPI2_Handler.Init.CLKPhase=SPI_PHASE_1EDGE;//待定,不是改不改。视频17:13.
SPI2_Handler.Init.NSS=SPI_NSS_SOFT;//片选软件管理
SPI2_Handler.Init.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_8;//待定.或者8
SPI2_Handler.Init.FirstBit=SPI_FIRSTBIT_MSB;//待定.
SPI2_Handler.Init.TIMode=SPI_TIMODE_DISABLE;//待定.
SPI2_Handler.Init.CRCCalculation=SPI_CRCCALCULATION_DISABLE;//待定.
SPI2_Handler.Init.CRCPolynomial=7;//待定.




HAL_SPI_Init(&SPI2_Handler);
__HAL_SPI_ENABLE(&SPI2_Handler);
SPI2_ReadWriteByte(0xff);

}
void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi)//回调映射函数
{
GPIO_InitTypeDef GPIO_Initure;

if(hspi->Instance==SPI2)//如果是串口1,进行串口1 MSP初始化
{
  __HAL_RCC_GPIOB_CLK_ENABLE();   //使能GPIOA时钟
  __HAL_RCC_SPI2_CLK_ENABLE();   //使能USART1时钟

  GPIO_Initure.Pin=GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15;   //PB7.8.9
  GPIO_Initure.Mode=GPIO_MODE_AF_PP;  //复用推挽输出
  GPIO_Initure.Pull=GPIO_PULLUP;   //上拉
  GPIO_Initure.Speed=GPIO_SPEED_FAST;  //高速
  GPIO_Initure.Alternate=GPIO_AF5_SPI2; //复用为SPI2
  HAL_GPIO_Init(GPIOB,&GPIO_Initure);     //初始化PB7.8.9

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。