fix LPC812 PWM

Dependents:   IR_LED_Send

Fork of mbed-dev by mbed official

Committer:
nameless129
Date:
Mon May 16 16:50:30 2016 +0000
Revision:
129:2e517c56bcfb
Parent:
19:112740acecfa
PWM Fix:Duty 0%??H???????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bogdanm 0:9b334a45a8ff 1 /**
bogdanm 0:9b334a45a8ff 2 ******************************************************************************
bogdanm 0:9b334a45a8ff 3 * @file stm32f4xx_hal_i2s_ex.h
bogdanm 0:9b334a45a8ff 4 * @author MCD Application Team
mbed_official 19:112740acecfa 5 * @version V1.4.1
mbed_official 19:112740acecfa 6 * @date 09-October-2015
bogdanm 0:9b334a45a8ff 7 * @brief Header file of I2S HAL module.
bogdanm 0:9b334a45a8ff 8 ******************************************************************************
bogdanm 0:9b334a45a8ff 9 * @attention
bogdanm 0:9b334a45a8ff 10 *
bogdanm 0:9b334a45a8ff 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
bogdanm 0:9b334a45a8ff 12 *
bogdanm 0:9b334a45a8ff 13 * Redistribution and use in source and binary forms, with or without modification,
bogdanm 0:9b334a45a8ff 14 * are permitted provided that the following conditions are met:
bogdanm 0:9b334a45a8ff 15 * 1. Redistributions of source code must retain the above copyright notice,
bogdanm 0:9b334a45a8ff 16 * this list of conditions and the following disclaimer.
bogdanm 0:9b334a45a8ff 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
bogdanm 0:9b334a45a8ff 18 * this list of conditions and the following disclaimer in the documentation
bogdanm 0:9b334a45a8ff 19 * and/or other materials provided with the distribution.
bogdanm 0:9b334a45a8ff 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
bogdanm 0:9b334a45a8ff 21 * may be used to endorse or promote products derived from this software
bogdanm 0:9b334a45a8ff 22 * without specific prior written permission.
bogdanm 0:9b334a45a8ff 23 *
bogdanm 0:9b334a45a8ff 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
bogdanm 0:9b334a45a8ff 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
bogdanm 0:9b334a45a8ff 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
bogdanm 0:9b334a45a8ff 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
bogdanm 0:9b334a45a8ff 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
bogdanm 0:9b334a45a8ff 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
bogdanm 0:9b334a45a8ff 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
bogdanm 0:9b334a45a8ff 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
bogdanm 0:9b334a45a8ff 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
bogdanm 0:9b334a45a8ff 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
bogdanm 0:9b334a45a8ff 34 *
bogdanm 0:9b334a45a8ff 35 ******************************************************************************
bogdanm 0:9b334a45a8ff 36 */
bogdanm 0:9b334a45a8ff 37
bogdanm 0:9b334a45a8ff 38 /* Define to prevent recursive inclusion -------------------------------------*/
bogdanm 0:9b334a45a8ff 39 #ifndef __STM32F4xx_HAL_I2S_EX_H
bogdanm 0:9b334a45a8ff 40 #define __STM32F4xx_HAL_I2S_EX_H
bogdanm 0:9b334a45a8ff 41
bogdanm 0:9b334a45a8ff 42 #ifdef __cplusplus
bogdanm 0:9b334a45a8ff 43 extern "C" {
bogdanm 0:9b334a45a8ff 44 #endif
bogdanm 0:9b334a45a8ff 45
bogdanm 0:9b334a45a8ff 46 /* Includes ------------------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 47 #include "stm32f4xx_hal_def.h"
bogdanm 0:9b334a45a8ff 48
bogdanm 0:9b334a45a8ff 49 /** @addtogroup STM32F4xx_HAL_Driver
bogdanm 0:9b334a45a8ff 50 * @{
bogdanm 0:9b334a45a8ff 51 */
bogdanm 0:9b334a45a8ff 52
bogdanm 0:9b334a45a8ff 53 /** @addtogroup I2SEx
bogdanm 0:9b334a45a8ff 54 * @{
bogdanm 0:9b334a45a8ff 55 */
bogdanm 0:9b334a45a8ff 56
bogdanm 0:9b334a45a8ff 57 /* Exported types ------------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 58 /** @defgroup I2SEx_Exported_Types I2S Exported Types
bogdanm 0:9b334a45a8ff 59 * @{
bogdanm 0:9b334a45a8ff 60 */
bogdanm 0:9b334a45a8ff 61 /**
bogdanm 0:9b334a45a8ff 62 * @}
bogdanm 0:9b334a45a8ff 63 */
bogdanm 0:9b334a45a8ff 64
bogdanm 0:9b334a45a8ff 65 /* Exported constants --------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 66 /** @defgroup I2SEx_Exported_Constants I2S Exported Constants
bogdanm 0:9b334a45a8ff 67 * @{
mbed_official 19:112740acecfa 68 */
mbed_official 19:112740acecfa 69
mbed_official 19:112740acecfa 70 /** @defgroup I2S_Clock_Source I2S Clock Source
mbed_official 19:112740acecfa 71 * @{
mbed_official 19:112740acecfa 72 */
mbed_official 19:112740acecfa 73
mbed_official 19:112740acecfa 74 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || \
mbed_official 19:112740acecfa 75 defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) || \
mbed_official 19:112740acecfa 76 defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F411xE) || defined(STM32F469xx) || \
mbed_official 19:112740acecfa 77 defined(STM32F479xx)
mbed_official 19:112740acecfa 78 #define I2S_CLOCK_PLL ((uint32_t)0x00000000)
mbed_official 19:112740acecfa 79 #define I2S_CLOCK_EXTERNAL ((uint32_t)0x00000001)
mbed_official 19:112740acecfa 80 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx ||
mbed_official 19:112740acecfa 81 STM32F401xC || STM32F401xE || STM32F411xE || STM32F469xx || STM32F479xx */
mbed_official 19:112740acecfa 82
mbed_official 19:112740acecfa 83 #if defined(STM32F446xx)
mbed_official 19:112740acecfa 84 #define I2S_CLOCK_PLL ((uint32_t)0x00000000)
mbed_official 19:112740acecfa 85 #define I2S_CLOCK_EXTERNAL ((uint32_t)0x00000001)
mbed_official 19:112740acecfa 86 #define I2S_CLOCK_PLLR ((uint32_t)0x00000002)
mbed_official 19:112740acecfa 87 #define I2S_CLOCK_PLLSRC ((uint32_t)0x00000003)
mbed_official 19:112740acecfa 88 #endif /* STM32F446xx */
mbed_official 19:112740acecfa 89
mbed_official 19:112740acecfa 90 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
mbed_official 19:112740acecfa 91 #define I2S_CLOCK_PLLSRC ((uint32_t)0x00000000)
mbed_official 19:112740acecfa 92 #define I2S_CLOCK_EXTERNAL ((uint32_t)0x00000001)
mbed_official 19:112740acecfa 93 #define I2S_CLOCK_PLLR ((uint32_t)0x00000002)
mbed_official 19:112740acecfa 94 #endif /* STM32F410Tx || STM32F410Cx || STM32F410Rx */
mbed_official 19:112740acecfa 95 /**
mbed_official 19:112740acecfa 96 * @}
mbed_official 19:112740acecfa 97 */
mbed_official 19:112740acecfa 98
bogdanm 0:9b334a45a8ff 99 /**
bogdanm 0:9b334a45a8ff 100 * @}
bogdanm 0:9b334a45a8ff 101 */
bogdanm 0:9b334a45a8ff 102
bogdanm 0:9b334a45a8ff 103 /* Exported macro ------------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 104 /** @defgroup I2SEx_Exported_Macros I2S Exported Macros
bogdanm 0:9b334a45a8ff 105 * @{
bogdanm 0:9b334a45a8ff 106 */
bogdanm 0:9b334a45a8ff 107
bogdanm 0:9b334a45a8ff 108 /**
bogdanm 0:9b334a45a8ff 109 * @}
bogdanm 0:9b334a45a8ff 110 */
bogdanm 0:9b334a45a8ff 111
bogdanm 0:9b334a45a8ff 112 /* Exported functions --------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 113 /** @addtogroup I2SEx_Exported_Functions
bogdanm 0:9b334a45a8ff 114 * @{
bogdanm 0:9b334a45a8ff 115 */
bogdanm 0:9b334a45a8ff 116
bogdanm 0:9b334a45a8ff 117 /** @addtogroup I2SEx_Exported_Functions_Group1
bogdanm 0:9b334a45a8ff 118 * @{
bogdanm 0:9b334a45a8ff 119 */
bogdanm 0:9b334a45a8ff 120
bogdanm 0:9b334a45a8ff 121 /* Extended features functions **************************************************/
bogdanm 0:9b334a45a8ff 122 /* Blocking mode: Polling */
bogdanm 0:9b334a45a8ff 123 HAL_StatusTypeDef HAL_I2SEx_TransmitReceive(I2S_HandleTypeDef *hi2s, uint16_t *pTxData, uint16_t *pRxData, uint16_t Size, uint32_t Timeout);
bogdanm 0:9b334a45a8ff 124 /* Non-Blocking mode: Interrupt */
bogdanm 0:9b334a45a8ff 125 HAL_StatusTypeDef HAL_I2SEx_TransmitReceive_IT(I2S_HandleTypeDef *hi2s, uint16_t *pTxData, uint16_t *pRxData, uint16_t Size);
bogdanm 0:9b334a45a8ff 126 /* Non-Blocking mode: DMA */
bogdanm 0:9b334a45a8ff 127 HAL_StatusTypeDef HAL_I2SEx_TransmitReceive_DMA(I2S_HandleTypeDef *hi2s, uint16_t *pTxData, uint16_t *pRxData, uint16_t Size);
bogdanm 0:9b334a45a8ff 128 /**
bogdanm 0:9b334a45a8ff 129 * @}
bogdanm 0:9b334a45a8ff 130 */
bogdanm 0:9b334a45a8ff 131
bogdanm 0:9b334a45a8ff 132 /**
bogdanm 0:9b334a45a8ff 133 * @}
bogdanm 0:9b334a45a8ff 134 */
bogdanm 0:9b334a45a8ff 135 /* Private types -------------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 136 /* Private variables ---------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 137 /* Private constants ---------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 138 /** @defgroup I2SEx_Private_Constants I2S Private Constants
bogdanm 0:9b334a45a8ff 139 * @{
bogdanm 0:9b334a45a8ff 140 */
bogdanm 0:9b334a45a8ff 141 /**
bogdanm 0:9b334a45a8ff 142 * @}
bogdanm 0:9b334a45a8ff 143 */
bogdanm 0:9b334a45a8ff 144
bogdanm 0:9b334a45a8ff 145 /* Private macros ------------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 146 /** @defgroup I2SEx_Private_Macros I2S Private Macros
bogdanm 0:9b334a45a8ff 147 * @{
bogdanm 0:9b334a45a8ff 148 */
mbed_official 19:112740acecfa 149 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || \
mbed_official 19:112740acecfa 150 defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) || \
mbed_official 19:112740acecfa 151 defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F411xE) || defined(STM32F469xx) || \
mbed_official 19:112740acecfa 152 defined(STM32F479xx)
mbed_official 19:112740acecfa 153 #define IS_I2S_CLOCKSOURCE(CLOCK) (((CLOCK) == I2S_CLOCK_EXTERNAL) ||\
mbed_official 19:112740acecfa 154 ((CLOCK) == I2S_CLOCK_PLL))
mbed_official 19:112740acecfa 155 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx ||
mbed_official 19:112740acecfa 156 STM32F401xC || STM32F401xE || STM32F411xE || STM32F469xx || STM32F479xx */
mbed_official 19:112740acecfa 157
mbed_official 19:112740acecfa 158 #if defined(STM32F446xx)
mbed_official 19:112740acecfa 159 #define IS_I2S_CLOCKSOURCE(CLOCK) (((CLOCK) == I2S_CLOCK_EXTERNAL) ||\
mbed_official 19:112740acecfa 160 ((CLOCK) == I2S_CLOCK_PLL) ||\
mbed_official 19:112740acecfa 161 ((CLOCK) == I2S_CLOCK_PLLSRC) ||\
mbed_official 19:112740acecfa 162 ((CLOCK) == I2S_CLOCK_PLLR))
mbed_official 19:112740acecfa 163 #endif /* STM32F446xx */
mbed_official 19:112740acecfa 164
mbed_official 19:112740acecfa 165 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
mbed_official 19:112740acecfa 166 #define IS_I2S_CLOCKSOURCE(CLOCK) (((CLOCK) == I2S_CLOCK_EXTERNAL) ||\
mbed_official 19:112740acecfa 167 ((CLOCK) == I2S_CLOCK_PLLSRC) ||\
mbed_official 19:112740acecfa 168 ((CLOCK) == I2S_CLOCK_PLLR))
mbed_official 19:112740acecfa 169 #endif /* STM32F410Tx || STM32F410Cx || STM32F410Rx */
mbed_official 19:112740acecfa 170
mbed_official 19:112740acecfa 171 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || \
mbed_official 19:112740acecfa 172 defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) || \
mbed_official 19:112740acecfa 173 defined(STM32F401xC) || defined(STM32F401xE) || defined(STM32F410Cx) || defined(STM32F410Rx) || \
mbed_official 19:112740acecfa 174 defined(STM32F411xE) || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
mbed_official 19:112740acecfa 175 #define I2SxEXT(__INSTANCE__) ((__INSTANCE__) == (SPI2)? (SPI_TypeDef *)(I2S2ext_BASE): (SPI_TypeDef *)(I2S3ext_BASE))
mbed_official 19:112740acecfa 176 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx ||
mbed_official 19:112740acecfa 177 STM32F401xC || STM32F401xE || STM32F410Cx || STM32F410Rx || STM32F411xE || STM32F446xx || STM32F469xx || STM32F479xx */
mbed_official 19:112740acecfa 178
bogdanm 0:9b334a45a8ff 179 /**
bogdanm 0:9b334a45a8ff 180 * @}
bogdanm 0:9b334a45a8ff 181 */
bogdanm 0:9b334a45a8ff 182
bogdanm 0:9b334a45a8ff 183 /* Private functions ---------------------------------------------------------*/
bogdanm 0:9b334a45a8ff 184 /** @defgroup I2SEx_Private_Functions I2S Private Functions
bogdanm 0:9b334a45a8ff 185 * @{
bogdanm 0:9b334a45a8ff 186 */
bogdanm 0:9b334a45a8ff 187 HAL_StatusTypeDef I2SEx_TransmitReceive_IT(I2S_HandleTypeDef *hi2s);
bogdanm 0:9b334a45a8ff 188 uint32_t I2S_GetInputClock(I2S_HandleTypeDef *hi2s);
bogdanm 0:9b334a45a8ff 189 /**
bogdanm 0:9b334a45a8ff 190 * @}
bogdanm 0:9b334a45a8ff 191 */
bogdanm 0:9b334a45a8ff 192
bogdanm 0:9b334a45a8ff 193 /**
bogdanm 0:9b334a45a8ff 194 * @}
bogdanm 0:9b334a45a8ff 195 */
bogdanm 0:9b334a45a8ff 196
bogdanm 0:9b334a45a8ff 197 /**
bogdanm 0:9b334a45a8ff 198 * @}
bogdanm 0:9b334a45a8ff 199 */
bogdanm 0:9b334a45a8ff 200
bogdanm 0:9b334a45a8ff 201 #ifdef __cplusplus
bogdanm 0:9b334a45a8ff 202 }
bogdanm 0:9b334a45a8ff 203 #endif
bogdanm 0:9b334a45a8ff 204
bogdanm 0:9b334a45a8ff 205
bogdanm 0:9b334a45a8ff 206 #endif /* __STM32F4xx_HAL_I2S_EX_H */
bogdanm 0:9b334a45a8ff 207
bogdanm 0:9b334a45a8ff 208 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/