STM32G474xx HAL用户手册
stm32g4xx_hal_spi_ex.c
跳转到此文件的文档。
00001 /**
00002   ******************************************************************************
00003   * @文件    stm32g4xx_hal_spi_ex.c
00004   * @作者    MCD Application Team
00005   * @brief   扩展SPI HAL模块驱动程序。
00006   *          本文件提供固件函数以管理以下SPI外设扩展功能:
00007   *           + IO操作函数
00008   *
00009   ******************************************************************************
00010   * @注意
00011   *
00012   * 版权所有 (c) 2019 STMicroelectronics。
00013   * 保留所有权利。
00014   *
00016   * 本软件根据LICENSE文件中规定的条款获得许可。
00016   * 在本软件组件的根目录中找到LICENSE文件。
00017   * 如果本软件随附的LICENSE文件不存在,则按"原样"提供。
00019   *
00020   ******************************************************************************
00021   */
00022 
00023 /* 包含 ------------------------------------------------------------------*/
00024 #include "stm32g4xx_hal.h"
00025 
00026 /** @addtogroup STM32G4xx_HAL_Driver
00027   * @{
00028   */
00029 
00030 /** @defgroup SPIEx SPIEx
00031   * @brief SPI扩展HAL模块驱动程序
00032   * @{
00033   */
00034 #ifdef HAL_SPI_MODULE_ENABLED
00035 
00036 /* 私有类型定义 -----------------------------------------------------------*/
00037 /* 私有定义 -----------------------------------------------------------*/
00038 /** @defgroup SPIEx_Private_Constants SPIEx私有常量
00039   * @{
00040   */
00041 #define SPI_FIFO_SIZE       4UL
00042 /**
00043   * @}
00044   */
00045 
00046 /* 私有宏 ------------------------------------------------------------*/
00047 /* 私有变量 ---------------------------------------------------------*/
00048 /* 私有函数原型 -----------------------------------------------*/
00049 /* 导出函数 --------------------------------------------------------*/
00050 
00051 /** @defgroup SPIEx_Exported_Functions SPIEx导出函数
00052   * @{
00053   */
00054 
00055 /** @defgroup SPIEx_Exported_Functions_Group1 IO操作函数
00056   *  @brief   数据传输函数
00057   *
00058 @verbatim
00059   ==============================================================================
00060                       ##### IO操作函数 #####
00061  ===============================================================================
00062  [..]
00063     本小节提供了一组扩展函数用于管理SPI数据传输。
00064 
00065     (#) Rx数据刷新函数:
00067         (++) HAL_SPIEx_FlushRxFifo()
00068 
00069 @endverbatim
00070   * @{
00071   */
00072 
00073 /**
00074   * @brief  刷新RX FIFO。
00075   * @param  hspi 指向SPI_HandleTypeDef结构的指针,该结构包含
00076   *               指定SPI模块的配置信息。
00077   * @retval HAL状态
00078   */
00079 HAL_StatusTypeDef HAL_SPIEx_FlushRxFifo(const SPI_HandleTypeDef *hspi)
00080 {
00081   __IO uint32_t tmpreg;
00082   uint8_t  count = 0U;
00083   while ((hspi->Instance->SR & SPI_FLAG_FRLVL) !=  SPI_FRLVL_EMPTY)
00084   {
00085     count++;
00086     tmpreg = hspi->Instance->DR;
00087     UNUSED(tmpreg); /* 为避免GCC警告 */
00088     if (count == SPI_FIFO_SIZE)
00089     {
00090       return HAL_TIMEOUT;
00092     }
00093   }
00094   return HAL_OK;
00095 }
00095 
00096 /**
00097   * @}
00098   */
00099 
00100 /**
00101   * @}
00102   */
00103 
00104 #endif /* HAL_SPI_MODULE_ENABLED */
00104 #endif /* HAL_SPI_MODULE_ENABLED */
00105 
00106 /**
00107   * @}
00108   */
00109 
00110 /**
00111   * @}
00112   */