AnsweredAssumed Answered

STM32l151RBT6A SPI issue

Question asked by Parmin Nayani on Mar 20, 2017
Latest reply on May 15, 2017 by Parmin Nayani

Hi all,

I am not able to get SPI working on stm32l151rbt6a. I have posted my initialization code below.

/* SPI1 init function */
void MX_SPI1_Init(void)
{
     GPIO_InitTypeDef GPIO_InitStruct;
     SPI_HandleTypeDef hspi1;

 

        __SPI1_CLK_ENABLE();            // clock ok

 

        /**SPI1 GPIO Configuration
        PA5     ------> SPI1_SCK
        PA6     ------> SPI1_MISO
        PA7     ------> SPI1_MOSI
        */
        GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7;
        GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
        GPIO_InitStruct.Pull = GPIO_NOPULL;
        GPIO_InitStruct.Speed = GPIO_SPEED_VERY_LOW;
        GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
        HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

 

  hspi1.Instance = SPI1;
  hspi1.Init.Mode = SPI_MODE_MASTER;
  hspi1.Init.Direction = SPI_DIRECTION_2LINES;
  hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
  hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
  hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
  hspi1.Init.NSS = SPI_NSS_SOFT;
  hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
  hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
  hspi1.Init.TIMode = SPI_TIMODE_DISABLED;
  hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLED;
  HAL_SPI_Init(&hspi1);
  __HAL_SPI_ENABLE(&hspi1);
 }

I am writing a byte to DR and  waiting for RXNE bit to set. RXNE bit is never setting. What could be the problem? I have spent a lot of time trying various options but to no avail. Any help will be highly appreciated. Thank you in advance.

Outcomes