You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
3.1 KiB
112 lines
3.1 KiB
/** |
|
****************************************************************************** |
|
* @file stm32wlxx_hal_spi_ex.c |
|
* @author MCD Application Team |
|
* @brief Extended SPI HAL module driver. |
|
* This file provides firmware functions to manage the following |
|
* SPI peripheral extended functionalities : |
|
* + IO operation functions |
|
* |
|
****************************************************************************** |
|
* @attention |
|
* |
|
* Copyright (c) 2020 STMicroelectronics. |
|
* All rights reserved. |
|
* |
|
* This software is licensed under terms that can be found in the LICENSE file |
|
* in the root directory of this software component. |
|
* If no LICENSE file comes with this software, it is provided AS-IS. |
|
* |
|
****************************************************************************** |
|
*/ |
|
|
|
/* Includes ------------------------------------------------------------------*/ |
|
#include "stm32wlxx_hal.h" |
|
|
|
/** @addtogroup STM32WLxx_HAL_Driver |
|
* @{ |
|
*/ |
|
|
|
/** @defgroup SPIEx SPIEx |
|
* @brief SPI Extended HAL module driver |
|
* @{ |
|
*/ |
|
#ifdef HAL_SPI_MODULE_ENABLED |
|
|
|
/* Private typedef -----------------------------------------------------------*/ |
|
/* Private defines -----------------------------------------------------------*/ |
|
/** @defgroup SPIEx_Private_Constants SPIEx Private Constants |
|
* @{ |
|
*/ |
|
#define SPI_FIFO_SIZE 4UL |
|
/** |
|
* @} |
|
*/ |
|
|
|
/* Private macros ------------------------------------------------------------*/ |
|
/* Private variables ---------------------------------------------------------*/ |
|
/* Private function prototypes -----------------------------------------------*/ |
|
/* Exported functions --------------------------------------------------------*/ |
|
|
|
/** @defgroup SPIEx_Exported_Functions SPIEx Exported Functions |
|
* @{ |
|
*/ |
|
|
|
/** @defgroup SPIEx_Exported_Functions_Group1 IO operation functions |
|
* @brief Data transfers functions |
|
* |
|
@verbatim |
|
============================================================================== |
|
##### IO operation functions ##### |
|
=============================================================================== |
|
[..] |
|
This subsection provides a set of extended functions to manage the SPI |
|
data transfers. |
|
|
|
(#) Rx data flush function: |
|
(++) HAL_SPIEx_FlushRxFifo() |
|
|
|
@endverbatim |
|
* @{ |
|
*/ |
|
|
|
/** |
|
* @brief Flush the RX fifo. |
|
* @param hspi pointer to a SPI_HandleTypeDef structure that contains |
|
* the configuration information for the specified SPI module. |
|
* @retval HAL status |
|
*/ |
|
HAL_StatusTypeDef HAL_SPIEx_FlushRxFifo(SPI_HandleTypeDef *hspi) |
|
{ |
|
__IO uint32_t tmpreg; |
|
uint8_t count = 0U; |
|
while ((hspi->Instance->SR & SPI_FLAG_FRLVL) != SPI_FRLVL_EMPTY) |
|
{ |
|
count++; |
|
tmpreg = hspi->Instance->DR; |
|
UNUSED(tmpreg); /* To avoid GCC warning */ |
|
if (count == SPI_FIFO_SIZE) |
|
{ |
|
return HAL_TIMEOUT; |
|
} |
|
} |
|
return HAL_OK; |
|
} |
|
|
|
/** |
|
* @} |
|
*/ |
|
|
|
/** |
|
* @} |
|
*/ |
|
|
|
#endif /* HAL_SPI_MODULE_ENABLED */ |
|
|
|
/** |
|
* @} |
|
*/ |
|
|
|
/** |
|
* @} |
|
*/
|
|
|