|
STM32G474xx HAL用户手册
|
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 */
1.7.6.1