/** * @brief Initializes SPI MSP. * @retval None */ static void SPIx_MspInit(void) { GPIO_InitTypeDef gpioinitstruct = {0}; /*** Configure the GPIOs ***/ /* Enable GPIO clock */ NUCLEO_SPIx_SCK_GPIO_CLK_ENABLE(); NUCLEO_SPIx_MISO_MOSI_GPIO_CLK_ENABLE(); /* Configure SPI SCK */ gpioinitstruct.Pin = NUCLEO_SPIx_SCK_PIN; gpioinitstruct.Mode = GPIO_MODE_AF_PP; gpioinitstruct.Speed = GPIO_SPEED_HIGH; HAL_GPIO_Init(NUCLEO_SPIx_SCK_GPIO_PORT, &gpioinitstruct); /* Configure SPI MISO and MOSI */ gpioinitstruct.Pin = NUCLEO_SPIx_MOSI_PIN; HAL_GPIO_Init(NUCLEO_SPIx_MISO_MOSI_GPIO_PORT, &gpioinitstruct); gpioinitstruct.Pin = NUCLEO_SPIx_MISO_PIN; gpioinitstruct.Mode = GPIO_MODE_INPUT; HAL_GPIO_Init(NUCLEO_SPIx_MISO_MOSI_GPIO_PORT, &gpioinitstruct); /*** Configure the SPI peripheral ***/ /* Enable SPI clock */ NUCLEO_SPIx_CLK_ENABLE(); }
/** * @brief Initializes SPI MSP. * @param None * @retval None */ static void SPIx_MspInit(SPI_HandleTypeDef *hspi) { GPIO_InitTypeDef GPIO_InitStruct; /*** Configure the GPIOs ***/ /* Enable GPIO clock */ NUCLEO_SPIx_SCK_GPIO_CLK_ENABLE(); NUCLEO_SPIx_MISO_MOSI_GPIO_CLK_ENABLE(); /* Configure SPI SCK */ GPIO_InitStruct.Pin = NUCLEO_SPIx_SCK_PIN; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_PULLUP; GPIO_InitStruct.Speed = GPIO_SPEED_HIGH; GPIO_InitStruct.Alternate = NUCLEO_SPIx_SCK_AF; HAL_GPIO_Init(NUCLEO_SPIx_SCK_GPIO_PORT, &GPIO_InitStruct); /* Configure SPI MISO and MOSI */ GPIO_InitStruct.Pin = NUCLEO_SPIx_MOSI_PIN; GPIO_InitStruct.Alternate = NUCLEO_SPIx_MISO_MOSI_AF; GPIO_InitStruct.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(NUCLEO_SPIx_MISO_MOSI_GPIO_PORT, &GPIO_InitStruct); GPIO_InitStruct.Pin = NUCLEO_SPIx_MISO_PIN; HAL_GPIO_Init(NUCLEO_SPIx_MISO_MOSI_GPIO_PORT, &GPIO_InitStruct); /*** Configure the SPI peripheral ***/ /* Enable SPI clock */ NUCLEO_SPIx_CLK_ENABLE(); }