STM32L486xx HAL User Manual
stm32l4xx_hal_sai_ex.h
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32l4xx_hal_sai_ex.h
00004   * @author  MCD Application Team
00005   * @brief   Header file of SAI HAL extended module.
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
00010   *
00011   * Redistribution and use in source and binary forms, with or without modification,
00012   * are permitted provided that the following conditions are met:
00013   *   1. Redistributions of source code must retain the above copyright notice,
00014   *      this list of conditions and the following disclaimer.
00015   *   2. Redistributions in binary form must reproduce the above copyright notice,
00016   *      this list of conditions and the following disclaimer in the documentation
00017   *      and/or other materials provided with the distribution.
00018   *   3. Neither the name of STMicroelectronics nor the names of its contributors
00019   *      may be used to endorse or promote products derived from this software
00020   *      without specific prior written permission.
00021   *
00022   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00023   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00024   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00025   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00026   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00027   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00028   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00029   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00030   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00031   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00032   *
00033   ******************************************************************************
00034   */
00035 
00036 /* Define to prevent recursive inclusion -------------------------------------*/
00037 #ifndef STM32L4xx_HAL_SAI_EX_H
00038 #define STM32L4xx_HAL_SAI_EX_H
00039 
00040 #ifdef __cplusplus
00041 extern "C" {
00042 #endif
00043 
00044 #if defined(STM32L4R5xx) || defined(STM32L4R7xx) || defined(STM32L4R9xx) || defined(STM32L4S5xx) || defined(STM32L4S7xx) || defined(STM32L4S9xx)
00045 
00046 /* Includes ------------------------------------------------------------------*/
00047 #include "stm32l4xx_hal_def.h"
00048 
00049 /** @addtogroup STM32L4xx_HAL_Driver
00050   * @{
00051   */
00052 
00053 /** @addtogroup SAIEx
00054   * @{
00055   */
00056 
00057 /* Exported types ------------------------------------------------------------*/
00058 /** @defgroup SAIEx_Exported_Types SAIEx Exported Types
00059   * @{
00060   */
00061 
00062 /**
00063   * @brief  PDM microphone delay structure definition
00064   */
00065 typedef struct
00066 {
00067   uint32_t MicPair;     /*!< Specifies which pair of microphones is selected.
00068                              This parameter must be a number between Min_Data = 1 and Max_Data = 3. */
00069 
00070   uint32_t LeftDelay;   /*!< Specifies the delay in PDM clock unit to apply on left microphone.
00071                              This parameter must be a number between Min_Data = 0 and Max_Data = 7. */
00072 
00073   uint32_t RightDelay;  /*!< Specifies the delay in PDM clock unit to apply on right microphone.
00074                              This parameter must be a number between Min_Data = 0 and Max_Data = 7. */
00075 } SAIEx_PdmMicDelayParamTypeDef;
00076 
00077 /**
00078   * @}
00079   */
00080 
00081 /* Exported constants --------------------------------------------------------*/
00082 /* Exported macros -----------------------------------------------------------*/
00083 /* Exported functions --------------------------------------------------------*/
00084 /** @addtogroup SAIEx_Exported_Functions SAIEx Extended Exported Functions
00085   * @{
00086   */
00087 
00088 /** @addtogroup SAIEx_Exported_Functions_Group1 Peripheral Control functions
00089   * @{
00090   */
00091 HAL_StatusTypeDef HAL_SAIEx_ConfigPdmMicDelay(SAI_HandleTypeDef *hsai, SAIEx_PdmMicDelayParamTypeDef *pdmMicDelay);
00092 /**
00093   * @}
00094   */
00095 
00096 /**
00097   * @}
00098   */
00099 
00100 /* Private macros ------------------------------------------------------------*/
00101 /** @addtogroup SAIEx_Private_Macros SAIEx Extended Private Macros
00102   * @{
00103   */
00104 #define IS_SAI_PDM_MIC_DELAY(VALUE)   ((VALUE) <= 7U)
00105 /**
00106   * @}
00107   */
00108 
00109 /**
00110   * @}
00111   */
00112 
00113 /**
00114   * @}
00115   */
00116 
00117 #endif /* STM32L4R5xx || STM32L4R7xx || STM32L4R9xx || STM32L4S5xx || STM32L4S7xx || STM32L4S9xx */
00118 
00119 #ifdef __cplusplus
00120 }
00121 #endif
00122 
00123 #endif /* STM32L4xx_HAL_SAI_EX_H */
00124 
00125 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/