mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Fri Nov 07 08:15:08 2014 +0000
Revision:
392:2b59412bb664
Parent:
targets/cmsis/TARGET_STM/TARGET_NUCLEO_F091RC/stm32f0xx_hal_rcc_ex.h@340:28d1f895c6fe
Child:
441:d2c15dda23c1
Synchronized with git revision eec0be05cd92349bee83c65f9e1302b25b5badf4

Full URL: https://github.com/mbedmicro/mbed/commit/eec0be05cd92349bee83c65f9e1302b25b5badf4/

Targets: STM32F0 - Factorisation of NUCLEO_F030R8/F072RB/F091RC cmsis folders

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 340:28d1f895c6fe 1 /**
mbed_official 340:28d1f895c6fe 2 ******************************************************************************
mbed_official 340:28d1f895c6fe 3 * @file stm32f0xx_hal_rcc_ex.h
mbed_official 340:28d1f895c6fe 4 * @author MCD Application Team
mbed_official 340:28d1f895c6fe 5 * @version V1.1.0
mbed_official 340:28d1f895c6fe 6 * @date 03-Oct-2014
mbed_official 340:28d1f895c6fe 7 * @brief Header file of RCC HAL Extension module.
mbed_official 340:28d1f895c6fe 8 ******************************************************************************
mbed_official 340:28d1f895c6fe 9 * @attention
mbed_official 340:28d1f895c6fe 10 *
mbed_official 340:28d1f895c6fe 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 340:28d1f895c6fe 12 *
mbed_official 340:28d1f895c6fe 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 340:28d1f895c6fe 14 * are permitted provided that the following conditions are met:
mbed_official 340:28d1f895c6fe 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 340:28d1f895c6fe 16 * this list of conditions and the following disclaimer.
mbed_official 340:28d1f895c6fe 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 340:28d1f895c6fe 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 340:28d1f895c6fe 19 * and/or other materials provided with the distribution.
mbed_official 340:28d1f895c6fe 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 340:28d1f895c6fe 21 * may be used to endorse or promote products derived from this software
mbed_official 340:28d1f895c6fe 22 * without specific prior written permission.
mbed_official 340:28d1f895c6fe 23 *
mbed_official 340:28d1f895c6fe 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 340:28d1f895c6fe 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 340:28d1f895c6fe 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 340:28d1f895c6fe 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 340:28d1f895c6fe 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 340:28d1f895c6fe 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 340:28d1f895c6fe 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 340:28d1f895c6fe 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 340:28d1f895c6fe 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 340:28d1f895c6fe 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 340:28d1f895c6fe 34 *
mbed_official 340:28d1f895c6fe 35 ******************************************************************************
mbed_official 340:28d1f895c6fe 36 */
mbed_official 340:28d1f895c6fe 37
mbed_official 340:28d1f895c6fe 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 340:28d1f895c6fe 39 #ifndef __STM32F0xx_HAL_RCC_EX_H
mbed_official 340:28d1f895c6fe 40 #define __STM32F0xx_HAL_RCC_EX_H
mbed_official 340:28d1f895c6fe 41
mbed_official 340:28d1f895c6fe 42 #ifdef __cplusplus
mbed_official 340:28d1f895c6fe 43 extern "C" {
mbed_official 340:28d1f895c6fe 44 #endif
mbed_official 340:28d1f895c6fe 45
mbed_official 340:28d1f895c6fe 46 /* Includes ------------------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 47 #include "stm32f0xx_hal_def.h"
mbed_official 340:28d1f895c6fe 48
mbed_official 340:28d1f895c6fe 49 /** @addtogroup STM32F0xx_HAL_Driver
mbed_official 340:28d1f895c6fe 50 * @{
mbed_official 340:28d1f895c6fe 51 */
mbed_official 340:28d1f895c6fe 52
mbed_official 340:28d1f895c6fe 53 /** @addtogroup RCCEx
mbed_official 340:28d1f895c6fe 54 * @{
mbed_official 340:28d1f895c6fe 55 */
mbed_official 340:28d1f895c6fe 56
mbed_official 340:28d1f895c6fe 57 /* Exported types ------------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 58
mbed_official 340:28d1f895c6fe 59 /** @defgroup RCCEx_Exported_Types RCCEx Exported Types
mbed_official 340:28d1f895c6fe 60 * @{
mbed_official 340:28d1f895c6fe 61 */
mbed_official 340:28d1f895c6fe 62
mbed_official 340:28d1f895c6fe 63 /**
mbed_official 340:28d1f895c6fe 64 * @brief RCC extended clocks structure definition
mbed_official 340:28d1f895c6fe 65 */
mbed_official 340:28d1f895c6fe 66 #if defined(STM32F030x6) || defined(STM32F030x8) || defined(STM32F031x6) || defined(STM32F038xx)
mbed_official 340:28d1f895c6fe 67 typedef struct
mbed_official 340:28d1f895c6fe 68 {
mbed_official 340:28d1f895c6fe 69 uint32_t PeriphClockSelection; /*!< The Extended Clock to be configured.
mbed_official 340:28d1f895c6fe 70 This parameter can be a value of @ref RCCEx_Periph_Clock_Selection */
mbed_official 340:28d1f895c6fe 71
mbed_official 340:28d1f895c6fe 72 uint32_t RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection
mbed_official 340:28d1f895c6fe 73 This parameter can be a value of @ref RCC_RTC_Clock_Source */
mbed_official 340:28d1f895c6fe 74
mbed_official 340:28d1f895c6fe 75 uint32_t Usart1ClockSelection; /*!< USART1 clock source
mbed_official 340:28d1f895c6fe 76 This parameter can be a value of @ref RCC_USART1_Clock_Source */
mbed_official 340:28d1f895c6fe 77
mbed_official 340:28d1f895c6fe 78 uint32_t I2c1ClockSelection; /*!< I2C1 clock source
mbed_official 340:28d1f895c6fe 79 This parameter can be a value of @ref RCC_I2C1_Clock_Source */
mbed_official 340:28d1f895c6fe 80
mbed_official 340:28d1f895c6fe 81 }RCC_PeriphCLKInitTypeDef;
mbed_official 340:28d1f895c6fe 82 #endif /* STM32F030x6 || STM32F030x8 || STM32F031x6 || STM32F038xx */
mbed_official 340:28d1f895c6fe 83
mbed_official 340:28d1f895c6fe 84 #if defined(STM32F042x6) || defined(STM32F048xx)
mbed_official 340:28d1f895c6fe 85 typedef struct
mbed_official 340:28d1f895c6fe 86 {
mbed_official 340:28d1f895c6fe 87 uint32_t PeriphClockSelection; /*!< The Extended Clock to be configured.
mbed_official 340:28d1f895c6fe 88 This parameter can be a value of @ref RCCEx_Periph_Clock_Selection */
mbed_official 340:28d1f895c6fe 89
mbed_official 340:28d1f895c6fe 90 uint32_t RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection
mbed_official 340:28d1f895c6fe 91 This parameter can be a value of @ref RCC_RTC_Clock_Source */
mbed_official 340:28d1f895c6fe 92
mbed_official 340:28d1f895c6fe 93 uint32_t Usart1ClockSelection; /*!< USART1 clock source
mbed_official 340:28d1f895c6fe 94 This parameter can be a value of @ref RCC_USART1_Clock_Source */
mbed_official 340:28d1f895c6fe 95
mbed_official 340:28d1f895c6fe 96 uint32_t I2c1ClockSelection; /*!< I2C1 clock source
mbed_official 340:28d1f895c6fe 97 This parameter can be a value of @ref RCC_I2C1_Clock_Source */
mbed_official 340:28d1f895c6fe 98
mbed_official 340:28d1f895c6fe 99 uint32_t CecClockSelection; /*!< HDMI CEC clock source
mbed_official 340:28d1f895c6fe 100 This parameter can be a value of @ref RCCEx_CEC_Clock_Source */
mbed_official 340:28d1f895c6fe 101
mbed_official 340:28d1f895c6fe 102 uint32_t UsbClockSelection; /*!< USB clock source
mbed_official 340:28d1f895c6fe 103 This parameter can be a value of @ref RCCEx_USB_Clock_Source */
mbed_official 340:28d1f895c6fe 104
mbed_official 340:28d1f895c6fe 105 }RCC_PeriphCLKInitTypeDef;
mbed_official 340:28d1f895c6fe 106 #endif /* STM32F042x6 || STM32F048xx */
mbed_official 340:28d1f895c6fe 107
mbed_official 340:28d1f895c6fe 108 #if defined(STM32F051x8) || defined(STM32F058xx)
mbed_official 340:28d1f895c6fe 109 typedef struct
mbed_official 340:28d1f895c6fe 110 {
mbed_official 340:28d1f895c6fe 111 uint32_t PeriphClockSelection; /*!< The Extended Clock to be configured.
mbed_official 340:28d1f895c6fe 112 This parameter can be a value of @ref RCCEx_Periph_Clock_Selection */
mbed_official 340:28d1f895c6fe 113
mbed_official 340:28d1f895c6fe 114 uint32_t RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection
mbed_official 340:28d1f895c6fe 115 This parameter can be a value of @ref RCC_RTC_Clock_Source */
mbed_official 340:28d1f895c6fe 116
mbed_official 340:28d1f895c6fe 117 uint32_t Usart1ClockSelection; /*!< USART1 clock source
mbed_official 340:28d1f895c6fe 118 This parameter can be a value of @ref RCC_USART1_Clock_Source */
mbed_official 340:28d1f895c6fe 119
mbed_official 340:28d1f895c6fe 120 uint32_t I2c1ClockSelection; /*!< I2C1 clock source
mbed_official 340:28d1f895c6fe 121 This parameter can be a value of @ref RCC_I2C1_Clock_Source */
mbed_official 340:28d1f895c6fe 122
mbed_official 340:28d1f895c6fe 123 uint32_t CecClockSelection; /*!< HDMI CEC clock source
mbed_official 340:28d1f895c6fe 124 This parameter can be a value of @ref RCCEx_CEC_Clock_Source */
mbed_official 340:28d1f895c6fe 125
mbed_official 340:28d1f895c6fe 126 }RCC_PeriphCLKInitTypeDef;
mbed_official 340:28d1f895c6fe 127 #endif /* STM32F051x8 || STM32F058xx */
mbed_official 340:28d1f895c6fe 128
mbed_official 340:28d1f895c6fe 129 #if defined(STM32F071xB)
mbed_official 340:28d1f895c6fe 130 typedef struct
mbed_official 340:28d1f895c6fe 131 {
mbed_official 340:28d1f895c6fe 132 uint32_t PeriphClockSelection; /*!< The Extended Clock to be configured.
mbed_official 340:28d1f895c6fe 133 This parameter can be a value of @ref RCCEx_Periph_Clock_Selection */
mbed_official 340:28d1f895c6fe 134
mbed_official 340:28d1f895c6fe 135 uint32_t RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection
mbed_official 340:28d1f895c6fe 136 This parameter can be a value of @ref RCC_RTC_Clock_Source */
mbed_official 340:28d1f895c6fe 137
mbed_official 340:28d1f895c6fe 138 uint32_t Usart1ClockSelection; /*!< USART1 clock source
mbed_official 340:28d1f895c6fe 139 This parameter can be a value of @ref RCC_USART1_Clock_Source */
mbed_official 340:28d1f895c6fe 140
mbed_official 340:28d1f895c6fe 141 uint32_t Usart2ClockSelection; /*!< USART2 clock source
mbed_official 340:28d1f895c6fe 142 This parameter can be a value of @ref RCCEx_USART2_Clock_Source */
mbed_official 340:28d1f895c6fe 143
mbed_official 340:28d1f895c6fe 144 uint32_t I2c1ClockSelection; /*!< I2C1 clock source
mbed_official 340:28d1f895c6fe 145 This parameter can be a value of @ref RCC_I2C1_Clock_Source */
mbed_official 340:28d1f895c6fe 146
mbed_official 340:28d1f895c6fe 147 uint32_t CecClockSelection; /*!< HDMI CEC clock source
mbed_official 340:28d1f895c6fe 148 This parameter can be a value of @ref RCCEx_CEC_Clock_Source */
mbed_official 340:28d1f895c6fe 149
mbed_official 340:28d1f895c6fe 150 }RCC_PeriphCLKInitTypeDef;
mbed_official 340:28d1f895c6fe 151 #endif /* STM32F071xB */
mbed_official 340:28d1f895c6fe 152
mbed_official 340:28d1f895c6fe 153 #if defined(STM32F072xB) || defined(STM32F078xx)
mbed_official 340:28d1f895c6fe 154 typedef struct
mbed_official 340:28d1f895c6fe 155 {
mbed_official 340:28d1f895c6fe 156 uint32_t PeriphClockSelection; /*!< The Extended Clock to be configured.
mbed_official 340:28d1f895c6fe 157 This parameter can be a value of @ref RCCEx_Periph_Clock_Selection */
mbed_official 340:28d1f895c6fe 158
mbed_official 340:28d1f895c6fe 159 uint32_t RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection
mbed_official 340:28d1f895c6fe 160 This parameter can be a value of @ref RCC_RTC_Clock_Source */
mbed_official 340:28d1f895c6fe 161
mbed_official 340:28d1f895c6fe 162 uint32_t Usart1ClockSelection; /*!< USART1 clock source
mbed_official 340:28d1f895c6fe 163 This parameter can be a value of @ref RCC_USART1_Clock_Source */
mbed_official 340:28d1f895c6fe 164
mbed_official 340:28d1f895c6fe 165 uint32_t Usart2ClockSelection; /*!< USART2 clock source
mbed_official 340:28d1f895c6fe 166 This parameter can be a value of @ref RCCEx_USART2_Clock_Source */
mbed_official 340:28d1f895c6fe 167
mbed_official 340:28d1f895c6fe 168 uint32_t I2c1ClockSelection; /*!< I2C1 clock source
mbed_official 340:28d1f895c6fe 169 This parameter can be a value of @ref RCC_I2C1_Clock_Source */
mbed_official 340:28d1f895c6fe 170
mbed_official 340:28d1f895c6fe 171 uint32_t CecClockSelection; /*!< HDMI CEC clock source
mbed_official 340:28d1f895c6fe 172 This parameter can be a value of @ref RCCEx_CEC_Clock_Source */
mbed_official 340:28d1f895c6fe 173
mbed_official 340:28d1f895c6fe 174 uint32_t UsbClockSelection; /*!< USB clock source
mbed_official 340:28d1f895c6fe 175 This parameter can be a value of @ref RCCEx_USB_Clock_Source */
mbed_official 340:28d1f895c6fe 176
mbed_official 340:28d1f895c6fe 177 }RCC_PeriphCLKInitTypeDef;
mbed_official 340:28d1f895c6fe 178 #endif /* STM32F072xB || STM32F078xx */
mbed_official 340:28d1f895c6fe 179
mbed_official 340:28d1f895c6fe 180
mbed_official 340:28d1f895c6fe 181 #if defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 182 typedef struct
mbed_official 340:28d1f895c6fe 183 {
mbed_official 340:28d1f895c6fe 184 uint32_t PeriphClockSelection; /*!< The Extended Clock to be configured.
mbed_official 340:28d1f895c6fe 185 This parameter can be a value of @ref RCCEx_Periph_Clock_Selection */
mbed_official 340:28d1f895c6fe 186
mbed_official 340:28d1f895c6fe 187 uint32_t RTCClockSelection; /*!< Specifies RTC Clock Prescalers Selection
mbed_official 340:28d1f895c6fe 188 This parameter can be a value of @ref RCC_RTC_Clock_Source */
mbed_official 340:28d1f895c6fe 189
mbed_official 340:28d1f895c6fe 190 uint32_t Usart1ClockSelection; /*!< USART1 clock source
mbed_official 340:28d1f895c6fe 191 This parameter can be a value of @ref RCC_USART1_Clock_Source */
mbed_official 340:28d1f895c6fe 192
mbed_official 340:28d1f895c6fe 193 uint32_t Usart2ClockSelection; /*!< USART2 clock source
mbed_official 340:28d1f895c6fe 194 This parameter can be a value of @ref RCCEx_USART2_Clock_Source */
mbed_official 340:28d1f895c6fe 195
mbed_official 340:28d1f895c6fe 196 uint32_t Usart3ClockSelection; /*!< USART3 clock source
mbed_official 340:28d1f895c6fe 197 This parameter can be a value of @ref RCCEx_USART3_Clock_Source */
mbed_official 340:28d1f895c6fe 198
mbed_official 340:28d1f895c6fe 199 uint32_t I2c1ClockSelection; /*!< I2C1 clock source
mbed_official 340:28d1f895c6fe 200 This parameter can be a value of @ref RCC_I2C1_Clock_Source */
mbed_official 340:28d1f895c6fe 201
mbed_official 340:28d1f895c6fe 202 uint32_t CecClockSelection; /*!< HDMI CEC clock source
mbed_official 340:28d1f895c6fe 203 This parameter can be a value of @ref RCCEx_CEC_Clock_Source */
mbed_official 340:28d1f895c6fe 204
mbed_official 340:28d1f895c6fe 205 }RCC_PeriphCLKInitTypeDef;
mbed_official 340:28d1f895c6fe 206 #endif /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 207
mbed_official 340:28d1f895c6fe 208
mbed_official 340:28d1f895c6fe 209 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 210 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 211 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 212 /**
mbed_official 340:28d1f895c6fe 213 * @brief RCC CRS Status structures definition
mbed_official 340:28d1f895c6fe 214 */
mbed_official 340:28d1f895c6fe 215 typedef enum
mbed_official 340:28d1f895c6fe 216 {
mbed_official 340:28d1f895c6fe 217 RCC_CRS_NONE = 0x00,
mbed_official 340:28d1f895c6fe 218 RCC_CRS_TIMEOUT = 0x01,
mbed_official 340:28d1f895c6fe 219 RCC_CRS_SYNCOK = 0x02,
mbed_official 340:28d1f895c6fe 220 RCC_CRS_SYNCWARM = 0x04,
mbed_official 340:28d1f895c6fe 221 RCC_CRS_SYNCERR = 0x08,
mbed_official 340:28d1f895c6fe 222 RCC_CRS_SYNCMISS = 0x10,
mbed_official 340:28d1f895c6fe 223 RCC_CRS_TRIMOV = 0x20
mbed_official 340:28d1f895c6fe 224 } RCC_CRSStatusTypeDef;
mbed_official 340:28d1f895c6fe 225
mbed_official 340:28d1f895c6fe 226 /**
mbed_official 340:28d1f895c6fe 227 * @brief RCC_CRS Init structure definition
mbed_official 340:28d1f895c6fe 228 */
mbed_official 340:28d1f895c6fe 229 typedef struct
mbed_official 340:28d1f895c6fe 230 {
mbed_official 340:28d1f895c6fe 231 uint32_t Prescaler; /*!< Specifies the division factor of the SYNC signal.
mbed_official 340:28d1f895c6fe 232 This parameter can be a value of @ref RCCEx_CRS_SynchroDivider */
mbed_official 340:28d1f895c6fe 233
mbed_official 340:28d1f895c6fe 234 uint32_t Source; /*!< Specifies the SYNC signal source.
mbed_official 340:28d1f895c6fe 235 This parameter can be a value of @ref RCCEx_CRS_SynchroSource */
mbed_official 340:28d1f895c6fe 236
mbed_official 340:28d1f895c6fe 237 uint32_t Polarity; /*!< Specifies the input polarity for the SYNC signal source.
mbed_official 340:28d1f895c6fe 238 This parameter can be a value of @ref RCCEx_CRS_SynchroPolarity */
mbed_official 340:28d1f895c6fe 239
mbed_official 340:28d1f895c6fe 240 uint32_t ReloadValue; /*!< Specifies the value to be loaded in the frequency error counter with each SYNC event.
mbed_official 340:28d1f895c6fe 241 It can be calculated in using macro __HAL_RCC_CRS_CALCULATE_RELOADVALUE(_FTARGET_, _FSYNC_)
mbed_official 340:28d1f895c6fe 242 This parameter must be a number between 0 and 0xFFFF or a value of @ref RCCEx_CRS_ReloadValueDefault .*/
mbed_official 340:28d1f895c6fe 243
mbed_official 340:28d1f895c6fe 244 uint32_t ErrorLimitValue; /*!< Specifies the value to be used to evaluate the captured frequency error value.
mbed_official 340:28d1f895c6fe 245 This parameter must be a number between 0 and 0xFF or a value of @ref RCCEx_CRS_ErrorLimitDefault */
mbed_official 340:28d1f895c6fe 246
mbed_official 340:28d1f895c6fe 247 uint32_t HSI48CalibrationValue; /*!< Specifies a user-programmable trimming value to the HSI48 oscillator.
mbed_official 340:28d1f895c6fe 248 This parameter must be a number between 0 and 0x3F or a value of @ref RCCEx_CRS_HSI48CalibrationDefault */
mbed_official 340:28d1f895c6fe 249
mbed_official 340:28d1f895c6fe 250 }RCC_CRSInitTypeDef;
mbed_official 340:28d1f895c6fe 251
mbed_official 340:28d1f895c6fe 252 /**
mbed_official 340:28d1f895c6fe 253 * @brief RCC_CRS Synchronization structure definition
mbed_official 340:28d1f895c6fe 254 */
mbed_official 340:28d1f895c6fe 255 typedef struct
mbed_official 340:28d1f895c6fe 256 {
mbed_official 340:28d1f895c6fe 257 uint32_t ReloadValue; /*!< Specifies the value loaded in the Counter reload value.
mbed_official 340:28d1f895c6fe 258 This parameter must be a number between 0 and 0xFFFF*/
mbed_official 340:28d1f895c6fe 259
mbed_official 340:28d1f895c6fe 260 uint32_t HSI48CalibrationValue; /*!< Specifies value loaded in HSI48 oscillator smooth trimming.
mbed_official 340:28d1f895c6fe 261 This parameter must be a number between 0 and 0x3F */
mbed_official 340:28d1f895c6fe 262
mbed_official 340:28d1f895c6fe 263 uint32_t FreqErrorCapture; /*!< Specifies the value loaded in the .FECAP, the frequency error counter
mbed_official 340:28d1f895c6fe 264 value latched in the time of the last SYNC event.
mbed_official 340:28d1f895c6fe 265 This parameter must be a number between 0 and 0xFFFF */
mbed_official 340:28d1f895c6fe 266
mbed_official 340:28d1f895c6fe 267 uint32_t FreqErrorDirection; /*!< Specifies the value loaded in the .FEDIR, the counting direction of the
mbed_official 340:28d1f895c6fe 268 frequency error counter latched in the time of the last SYNC event.
mbed_official 340:28d1f895c6fe 269 It shows whether the actual frequency is below or above the target.
mbed_official 340:28d1f895c6fe 270 This parameter must be a value of @ref RCCEx_CRS_FreqErrorDirection*/
mbed_official 340:28d1f895c6fe 271
mbed_official 340:28d1f895c6fe 272 }RCC_CRSSynchroInfoTypeDef;
mbed_official 340:28d1f895c6fe 273
mbed_official 340:28d1f895c6fe 274 #endif /* STM32F042x6 || */
mbed_official 340:28d1f895c6fe 275 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 276 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 277
mbed_official 340:28d1f895c6fe 278 /**
mbed_official 340:28d1f895c6fe 279 * @}
mbed_official 340:28d1f895c6fe 280 */
mbed_official 340:28d1f895c6fe 281
mbed_official 340:28d1f895c6fe 282 /* Exported constants --------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 283
mbed_official 340:28d1f895c6fe 284 /** @defgroup RCCEx_Exported_Constants RCCEx Exported Constants
mbed_official 340:28d1f895c6fe 285 * @{
mbed_official 340:28d1f895c6fe 286 */
mbed_official 340:28d1f895c6fe 287
mbed_official 340:28d1f895c6fe 288 /** @defgroup RCCEx_Periph_Clock_Selection RCCEx Periph Clock Selection
mbed_official 340:28d1f895c6fe 289 * @{
mbed_official 340:28d1f895c6fe 290 */
mbed_official 340:28d1f895c6fe 291 #if defined(STM32F030x6) || defined(STM32F030x8) || defined(STM32F031x6) || defined(STM32F038xx)
mbed_official 340:28d1f895c6fe 292 #define RCC_PERIPHCLK_USART1 ((uint32_t)0x00000001)
mbed_official 340:28d1f895c6fe 293 #define RCC_PERIPHCLK_I2C1 ((uint32_t)0x00000020)
mbed_official 340:28d1f895c6fe 294 #define RCC_PERIPHCLK_RTC ((uint32_t)0x00010000)
mbed_official 340:28d1f895c6fe 295
mbed_official 340:28d1f895c6fe 296 #define IS_RCC_PERIPHCLK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_I2C1 | \
mbed_official 340:28d1f895c6fe 297 RCC_PERIPHCLK_RTC))
mbed_official 340:28d1f895c6fe 298 #endif /* STM32F030x6 || STM32F030x8 || STM32F031x6 || STM32F038xx */
mbed_official 340:28d1f895c6fe 299
mbed_official 340:28d1f895c6fe 300 #if defined(STM32F042x6) || defined(STM32F048xx)
mbed_official 340:28d1f895c6fe 301 #define RCC_PERIPHCLK_USART1 ((uint32_t)0x00000001)
mbed_official 340:28d1f895c6fe 302 #define RCC_PERIPHCLK_I2C1 ((uint32_t)0x00000020)
mbed_official 340:28d1f895c6fe 303 #define RCC_PERIPHCLK_CEC ((uint32_t)0x00000400)
mbed_official 340:28d1f895c6fe 304 #define RCC_PERIPHCLK_RTC ((uint32_t)0x00010000)
mbed_official 340:28d1f895c6fe 305 #define RCC_PERIPHCLK_USB ((uint32_t)0x00020000)
mbed_official 340:28d1f895c6fe 306
mbed_official 340:28d1f895c6fe 307 #define IS_RCC_PERIPHCLK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_I2C1 | \
mbed_official 340:28d1f895c6fe 308 RCC_PERIPHCLK_CEC | RCC_PERIPHCLK_RTC | \
mbed_official 340:28d1f895c6fe 309 RCC_PERIPHCLK_USB))
mbed_official 340:28d1f895c6fe 310 #endif /* STM32F042x6 || STM32F048xx */
mbed_official 340:28d1f895c6fe 311
mbed_official 340:28d1f895c6fe 312 #if defined(STM32F051x8) || defined(STM32F058xx)
mbed_official 340:28d1f895c6fe 313 #define RCC_PERIPHCLK_USART1 ((uint32_t)0x00000001)
mbed_official 340:28d1f895c6fe 314 #define RCC_PERIPHCLK_I2C1 ((uint32_t)0x00000020)
mbed_official 340:28d1f895c6fe 315 #define RCC_PERIPHCLK_CEC ((uint32_t)0x00000400)
mbed_official 340:28d1f895c6fe 316 #define RCC_PERIPHCLK_RTC ((uint32_t)0x00010000)
mbed_official 340:28d1f895c6fe 317
mbed_official 340:28d1f895c6fe 318 #define IS_RCC_PERIPHCLK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_I2C1 | \
mbed_official 340:28d1f895c6fe 319 RCC_PERIPHCLK_CEC | RCC_PERIPHCLK_RTC))
mbed_official 340:28d1f895c6fe 320 #endif /* STM32F051x8 || STM32F058xx */
mbed_official 340:28d1f895c6fe 321
mbed_official 340:28d1f895c6fe 322 #if defined(STM32F071xB)
mbed_official 340:28d1f895c6fe 323 #define RCC_PERIPHCLK_USART1 ((uint32_t)0x00000001)
mbed_official 340:28d1f895c6fe 324 #define RCC_PERIPHCLK_USART2 ((uint32_t)0x00000002)
mbed_official 340:28d1f895c6fe 325 #define RCC_PERIPHCLK_I2C1 ((uint32_t)0x00000020)
mbed_official 340:28d1f895c6fe 326 #define RCC_PERIPHCLK_CEC ((uint32_t)0x00000400)
mbed_official 340:28d1f895c6fe 327 #define RCC_PERIPHCLK_RTC ((uint32_t)0x00010000)
mbed_official 340:28d1f895c6fe 328
mbed_official 340:28d1f895c6fe 329 #define IS_RCC_PERIPHCLK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | \
mbed_official 340:28d1f895c6fe 330 RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_CEC | \
mbed_official 340:28d1f895c6fe 331 RCC_PERIPHCLK_RTC))
mbed_official 340:28d1f895c6fe 332 #endif /* STM32F071xB */
mbed_official 340:28d1f895c6fe 333
mbed_official 340:28d1f895c6fe 334 #if defined(STM32F072xB) || defined(STM32F078xx)
mbed_official 340:28d1f895c6fe 335 #define RCC_PERIPHCLK_USART1 ((uint32_t)0x00000001)
mbed_official 340:28d1f895c6fe 336 #define RCC_PERIPHCLK_USART2 ((uint32_t)0x00000002)
mbed_official 340:28d1f895c6fe 337 #define RCC_PERIPHCLK_I2C1 ((uint32_t)0x00000020)
mbed_official 340:28d1f895c6fe 338 #define RCC_PERIPHCLK_CEC ((uint32_t)0x00000400)
mbed_official 340:28d1f895c6fe 339 #define RCC_PERIPHCLK_RTC ((uint32_t)0x00010000)
mbed_official 340:28d1f895c6fe 340 #define RCC_PERIPHCLK_USB ((uint32_t)0x00020000)
mbed_official 340:28d1f895c6fe 341
mbed_official 340:28d1f895c6fe 342 #define IS_RCC_PERIPHCLK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | \
mbed_official 340:28d1f895c6fe 343 RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_CEC | \
mbed_official 340:28d1f895c6fe 344 RCC_PERIPHCLK_RTC | RCC_PERIPHCLK_USB))
mbed_official 340:28d1f895c6fe 345 #endif /* STM32F072xB || STM32F078xx */
mbed_official 340:28d1f895c6fe 346
mbed_official 340:28d1f895c6fe 347 #if defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 348 #define RCC_PERIPHCLK_USART1 ((uint32_t)0x00000001)
mbed_official 340:28d1f895c6fe 349 #define RCC_PERIPHCLK_USART2 ((uint32_t)0x00000002)
mbed_official 340:28d1f895c6fe 350 #define RCC_PERIPHCLK_I2C1 ((uint32_t)0x00000020)
mbed_official 340:28d1f895c6fe 351 #define RCC_PERIPHCLK_CEC ((uint32_t)0x00000400)
mbed_official 340:28d1f895c6fe 352 #define RCC_PERIPHCLK_RTC ((uint32_t)0x00010000)
mbed_official 340:28d1f895c6fe 353 #define RCC_PERIPHCLK_USART3 ((uint32_t)0x00040000)
mbed_official 340:28d1f895c6fe 354
mbed_official 340:28d1f895c6fe 355 #define IS_RCC_PERIPHCLK(SELECTION) ((SELECTION) <= (RCC_PERIPHCLK_USART1 | RCC_PERIPHCLK_USART2 | \
mbed_official 340:28d1f895c6fe 356 RCC_PERIPHCLK_I2C1 | RCC_PERIPHCLK_CEC | \
mbed_official 340:28d1f895c6fe 357 RCC_PERIPHCLK_RTC | RCC_PERIPHCLK_USART3 ))
mbed_official 340:28d1f895c6fe 358 #endif /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 359
mbed_official 340:28d1f895c6fe 360 /**
mbed_official 340:28d1f895c6fe 361 * @}
mbed_official 340:28d1f895c6fe 362 */
mbed_official 340:28d1f895c6fe 363
mbed_official 340:28d1f895c6fe 364 /** @defgroup RCCEx_MCO_Clock_Source RCCEx MCO Clock Source
mbed_official 340:28d1f895c6fe 365 * @{
mbed_official 340:28d1f895c6fe 366 */
mbed_official 340:28d1f895c6fe 367
mbed_official 340:28d1f895c6fe 368 #if defined(STM32F030x6) || defined(STM32F031x6) || defined(STM32F038xx)
mbed_official 340:28d1f895c6fe 369
mbed_official 340:28d1f895c6fe 370 #define RCC_MCOSOURCE_PLLCLK_NODIV (RCC_CFGR_MCO_PLL | RCC_CFGR_PLLNODIV)
mbed_official 340:28d1f895c6fe 371
mbed_official 340:28d1f895c6fe 372 #define IS_RCC_MCOSOURCE(SOURCE) (((SOURCE) == RCC_MCOSOURCE_NONE) || \
mbed_official 340:28d1f895c6fe 373 ((SOURCE) == RCC_MCOSOURCE_LSI) || \
mbed_official 340:28d1f895c6fe 374 ((SOURCE) == RCC_MCOSOURCE_LSE) || \
mbed_official 340:28d1f895c6fe 375 ((SOURCE) == RCC_MCOSOURCE_SYSCLK) || \
mbed_official 340:28d1f895c6fe 376 ((SOURCE) == RCC_MCOSOURCE_HSI) || \
mbed_official 340:28d1f895c6fe 377 ((SOURCE) == RCC_MCOSOURCE_HSE) || \
mbed_official 340:28d1f895c6fe 378 ((SOURCE) == RCC_MCOSOURCE_PLLCLK_NODIV) || \
mbed_official 340:28d1f895c6fe 379 ((SOURCE) == RCC_MCOSOURCE_PLLCLK_DIV2) || \
mbed_official 340:28d1f895c6fe 380 ((SOURCE) == RCC_MCOSOURCE_HSI14))
mbed_official 340:28d1f895c6fe 381
mbed_official 340:28d1f895c6fe 382 #endif /* STM32F030x6 || STM32F031x6 || STM32F038xx */
mbed_official 340:28d1f895c6fe 383
mbed_official 340:28d1f895c6fe 384 #if defined(STM32F030x8) || defined(STM32F051x8) || defined(STM32F058xx)
mbed_official 340:28d1f895c6fe 385
mbed_official 340:28d1f895c6fe 386 #define IS_RCC_MCOSOURCE(SOURCE) (((SOURCE) == RCC_MCOSOURCE_NONE) || \
mbed_official 340:28d1f895c6fe 387 ((SOURCE) == RCC_MCOSOURCE_LSI) || \
mbed_official 340:28d1f895c6fe 388 ((SOURCE) == RCC_MCOSOURCE_LSE) || \
mbed_official 340:28d1f895c6fe 389 ((SOURCE) == RCC_MCOSOURCE_SYSCLK) || \
mbed_official 340:28d1f895c6fe 390 ((SOURCE) == RCC_MCOSOURCE_HSI) || \
mbed_official 340:28d1f895c6fe 391 ((SOURCE) == RCC_MCOSOURCE_HSE) || \
mbed_official 340:28d1f895c6fe 392 ((SOURCE) == RCC_MCOSOURCE_PLLCLK_DIV2) || \
mbed_official 340:28d1f895c6fe 393 ((SOURCE) == RCC_MCOSOURCE_HSI14))
mbed_official 340:28d1f895c6fe 394
mbed_official 340:28d1f895c6fe 395 #endif /* STM32F030x8 || STM32F051x8 || STM32F058xx */
mbed_official 340:28d1f895c6fe 396
mbed_official 340:28d1f895c6fe 397 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 398 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 399 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 400
mbed_official 340:28d1f895c6fe 401 #define RCC_MCOSOURCE_HSI48 RCC_CFGR_MCO_HSI48
mbed_official 340:28d1f895c6fe 402 #define RCC_MCOSOURCE_PLLCLK_NODIV (RCC_CFGR_MCO_PLL | RCC_CFGR_PLLNODIV)
mbed_official 340:28d1f895c6fe 403
mbed_official 340:28d1f895c6fe 404 #define IS_RCC_MCOSOURCE(SOURCE) (((SOURCE) == RCC_MCOSOURCE_NONE) || \
mbed_official 340:28d1f895c6fe 405 ((SOURCE) == RCC_MCOSOURCE_LSI) || \
mbed_official 340:28d1f895c6fe 406 ((SOURCE) == RCC_MCOSOURCE_LSE) || \
mbed_official 340:28d1f895c6fe 407 ((SOURCE) == RCC_MCOSOURCE_SYSCLK) || \
mbed_official 340:28d1f895c6fe 408 ((SOURCE) == RCC_MCOSOURCE_HSI) || \
mbed_official 340:28d1f895c6fe 409 ((SOURCE) == RCC_MCOSOURCE_HSE) || \
mbed_official 340:28d1f895c6fe 410 ((SOURCE) == RCC_MCOSOURCE_PLLCLK_NODIV) || \
mbed_official 340:28d1f895c6fe 411 ((SOURCE) == RCC_MCOSOURCE_PLLCLK_DIV2) || \
mbed_official 340:28d1f895c6fe 412 ((SOURCE) == RCC_MCOSOURCE_HSI14) || \
mbed_official 340:28d1f895c6fe 413 ((SOURCE) == RCC_MCOSOURCE_HSI48))
mbed_official 340:28d1f895c6fe 414
mbed_official 340:28d1f895c6fe 415 #define RCC_IT_HSI48 ((uint8_t)0x40)
mbed_official 340:28d1f895c6fe 416
mbed_official 340:28d1f895c6fe 417 /* Flags in the CR2 register */
mbed_official 340:28d1f895c6fe 418 #define RCC_CR2_HSI48RDY_BitNumber 16
mbed_official 340:28d1f895c6fe 419
mbed_official 340:28d1f895c6fe 420 #define RCC_FLAG_HSI48RDY ((uint8_t)((CR2_REG_INDEX << 5) | RCC_CR2_HSI48RDY_BitNumber))
mbed_official 340:28d1f895c6fe 421
mbed_official 340:28d1f895c6fe 422 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 423 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 424 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 425 /**
mbed_official 340:28d1f895c6fe 426 * @}
mbed_official 340:28d1f895c6fe 427 */
mbed_official 340:28d1f895c6fe 428
mbed_official 340:28d1f895c6fe 429 #if defined(STM32F042x6) || defined(STM32F048xx) || defined(STM32F072xB) || defined(STM32F078xx)
mbed_official 340:28d1f895c6fe 430
mbed_official 340:28d1f895c6fe 431 /** @defgroup RCCEx_USB_Clock_Source RCCEx USB Clock Source
mbed_official 340:28d1f895c6fe 432 * @{
mbed_official 340:28d1f895c6fe 433 */
mbed_official 340:28d1f895c6fe 434 #define RCC_USBCLKSOURCE_HSI48 RCC_CFGR3_USBSW_HSI48
mbed_official 340:28d1f895c6fe 435 #define RCC_USBCLKSOURCE_PLLCLK RCC_CFGR3_USBSW_PLLCLK
mbed_official 340:28d1f895c6fe 436
mbed_official 340:28d1f895c6fe 437 #define IS_RCC_USBCLKSOURCE(SOURCE) (((SOURCE) == RCC_USBCLKSOURCE_HSI48) || \
mbed_official 340:28d1f895c6fe 438 ((SOURCE) == RCC_USBCLKSOURCE_PLLCLK))
mbed_official 340:28d1f895c6fe 439 /**
mbed_official 340:28d1f895c6fe 440 * @}
mbed_official 340:28d1f895c6fe 441 */
mbed_official 340:28d1f895c6fe 442
mbed_official 340:28d1f895c6fe 443 #endif /* STM32F042x6 || STM32F048xx || STM32F072xB || STM32F078xx */
mbed_official 340:28d1f895c6fe 444
mbed_official 340:28d1f895c6fe 445 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 446 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 447
mbed_official 340:28d1f895c6fe 448 /** @defgroup RCCEx_USART2_Clock_Source RCCEx USART2 Clock Source
mbed_official 340:28d1f895c6fe 449 * @{
mbed_official 340:28d1f895c6fe 450 */
mbed_official 340:28d1f895c6fe 451 #define RCC_USART2CLKSOURCE_PCLK1 RCC_CFGR3_USART2SW_PCLK
mbed_official 340:28d1f895c6fe 452 #define RCC_USART2CLKSOURCE_SYSCLK RCC_CFGR3_USART2SW_SYSCLK
mbed_official 340:28d1f895c6fe 453 #define RCC_USART2CLKSOURCE_LSE RCC_CFGR3_USART2SW_LSE
mbed_official 340:28d1f895c6fe 454 #define RCC_USART2CLKSOURCE_HSI RCC_CFGR3_USART2SW_HSI
mbed_official 340:28d1f895c6fe 455
mbed_official 340:28d1f895c6fe 456 #define IS_RCC_USART2CLKSOURCE(SOURCE) (((SOURCE) == RCC_USART2CLKSOURCE_PCLK1) || \
mbed_official 340:28d1f895c6fe 457 ((SOURCE) == RCC_USART2CLKSOURCE_SYSCLK) || \
mbed_official 340:28d1f895c6fe 458 ((SOURCE) == RCC_USART2CLKSOURCE_LSE) || \
mbed_official 340:28d1f895c6fe 459 ((SOURCE) == RCC_USART2CLKSOURCE_HSI))
mbed_official 340:28d1f895c6fe 460 /**
mbed_official 340:28d1f895c6fe 461 * @}
mbed_official 340:28d1f895c6fe 462 */
mbed_official 340:28d1f895c6fe 463
mbed_official 340:28d1f895c6fe 464 #endif /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 465 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 466
mbed_official 340:28d1f895c6fe 467 #if defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 468
mbed_official 340:28d1f895c6fe 469 /** @defgroup RCCEx_USART3_Clock_Source RCCEx USART3 Clock Source
mbed_official 340:28d1f895c6fe 470 * @{
mbed_official 340:28d1f895c6fe 471 */
mbed_official 340:28d1f895c6fe 472 #define RCC_USART3CLKSOURCE_PCLK1 RCC_CFGR3_USART3SW_PCLK
mbed_official 340:28d1f895c6fe 473 #define RCC_USART3CLKSOURCE_SYSCLK RCC_CFGR3_USART3SW_SYSCLK
mbed_official 340:28d1f895c6fe 474 #define RCC_USART3CLKSOURCE_LSE RCC_CFGR3_USART3SW_LSE
mbed_official 340:28d1f895c6fe 475 #define RCC_USART3CLKSOURCE_HSI RCC_CFGR3_USART3SW_HSI
mbed_official 340:28d1f895c6fe 476
mbed_official 340:28d1f895c6fe 477 #define IS_RCC_USART3CLKSOURCE(SOURCE) (((SOURCE) == RCC_USART3CLKSOURCE_PCLK1) || \
mbed_official 340:28d1f895c6fe 478 ((SOURCE) == RCC_USART3CLKSOURCE_SYSCLK) || \
mbed_official 340:28d1f895c6fe 479 ((SOURCE) == RCC_USART3CLKSOURCE_LSE) || \
mbed_official 340:28d1f895c6fe 480 ((SOURCE) == RCC_USART3CLKSOURCE_HSI))
mbed_official 340:28d1f895c6fe 481 /**
mbed_official 340:28d1f895c6fe 482 * @}
mbed_official 340:28d1f895c6fe 483 */
mbed_official 340:28d1f895c6fe 484
mbed_official 340:28d1f895c6fe 485 #endif /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 486
mbed_official 340:28d1f895c6fe 487
mbed_official 340:28d1f895c6fe 488 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 489 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 490 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 491 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 492
mbed_official 340:28d1f895c6fe 493 /** @defgroup RCCEx_CEC_Clock_Source RCCEx CEC Clock Source
mbed_official 340:28d1f895c6fe 494 * @{
mbed_official 340:28d1f895c6fe 495 */
mbed_official 340:28d1f895c6fe 496 #define RCC_CECCLKSOURCE_HSI RCC_CFGR3_CECSW_HSI_DIV244
mbed_official 340:28d1f895c6fe 497 #define RCC_CECCLKSOURCE_LSE RCC_CFGR3_CECSW_LSE
mbed_official 340:28d1f895c6fe 498
mbed_official 340:28d1f895c6fe 499 #define IS_RCC_CECCLKSOURCE(SOURCE) (((SOURCE) == RCC_CECCLKSOURCE_HSI) || \
mbed_official 340:28d1f895c6fe 500 ((SOURCE) == RCC_CECCLKSOURCE_LSE))
mbed_official 340:28d1f895c6fe 501 /**
mbed_official 340:28d1f895c6fe 502 * @}
mbed_official 340:28d1f895c6fe 503 */
mbed_official 340:28d1f895c6fe 504
mbed_official 340:28d1f895c6fe 505 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 506 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 507 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 508 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 509
mbed_official 340:28d1f895c6fe 510 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 511 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 512 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 513
mbed_official 340:28d1f895c6fe 514 /** @defgroup RCCEx_PLL_Clock_Source RCCEx PLL Clock Source
mbed_official 340:28d1f895c6fe 515 * @{
mbed_official 340:28d1f895c6fe 516 */
mbed_official 340:28d1f895c6fe 517 #define RCC_PLLSOURCE_HSI RCC_CFGR_PLLSRC_HSI_PREDIV
mbed_official 340:28d1f895c6fe 518 #define RCC_PLLSOURCE_HSI48 RCC_CFGR_PLLSRC_HSI48_PREDIV
mbed_official 340:28d1f895c6fe 519
mbed_official 340:28d1f895c6fe 520 #define IS_RCC_PLLSOURCE(SOURCE) (((SOURCE) == RCC_PLLSOURCE_HSI) || \
mbed_official 340:28d1f895c6fe 521 ((SOURCE) == RCC_PLLSOURCE_HSI48) || \
mbed_official 340:28d1f895c6fe 522 ((SOURCE) == RCC_PLLSOURCE_HSE))
mbed_official 340:28d1f895c6fe 523 /**
mbed_official 340:28d1f895c6fe 524 * @}
mbed_official 340:28d1f895c6fe 525 */
mbed_official 340:28d1f895c6fe 526
mbed_official 340:28d1f895c6fe 527 /** @defgroup RCCEx_System_Clock_Source RCCEx System Clock Source
mbed_official 340:28d1f895c6fe 528 * @{
mbed_official 340:28d1f895c6fe 529 */
mbed_official 340:28d1f895c6fe 530 #define RCC_SYSCLKSOURCE_HSI48 RCC_CFGR_SW_HSI48
mbed_official 340:28d1f895c6fe 531
mbed_official 340:28d1f895c6fe 532 #define IS_RCC_SYSCLKSOURCE(SOURCE) (((SOURCE) == RCC_SYSCLKSOURCE_HSI) || \
mbed_official 340:28d1f895c6fe 533 ((SOURCE) == RCC_SYSCLKSOURCE_HSE) || \
mbed_official 340:28d1f895c6fe 534 ((SOURCE) == RCC_SYSCLKSOURCE_PLLCLK) || \
mbed_official 340:28d1f895c6fe 535 ((SOURCE) == RCC_SYSCLKSOURCE_HSI48))
mbed_official 340:28d1f895c6fe 536
mbed_official 340:28d1f895c6fe 537 #define RCC_SYSCLKSOURCE_STATUS_HSI48 RCC_CFGR_SWS_HSI48
mbed_official 340:28d1f895c6fe 538
mbed_official 340:28d1f895c6fe 539 #define IS_RCC_SYSCLKSOURCE_STATUS(SOURCE) (((SOURCE) == RCC_SYSCLKSOURCE_STATUS_HSI) || \
mbed_official 340:28d1f895c6fe 540 ((SOURCE) == RCC_SYSCLKSOURCE_STATUS_HSE) || \
mbed_official 340:28d1f895c6fe 541 ((SOURCE) == RCC_SYSCLKSOURCE_STATUS_PLLCLK) || \
mbed_official 340:28d1f895c6fe 542 ((SOURCE) == RCC_SYSCLKSOURCE_STATUS_HSI48))
mbed_official 340:28d1f895c6fe 543 /**
mbed_official 340:28d1f895c6fe 544 * @}
mbed_official 340:28d1f895c6fe 545 */
mbed_official 340:28d1f895c6fe 546
mbed_official 340:28d1f895c6fe 547 /** @defgroup RCCEx_HSI48_Config RCCEx HSI48 Config
mbed_official 340:28d1f895c6fe 548 * @{
mbed_official 340:28d1f895c6fe 549 */
mbed_official 340:28d1f895c6fe 550 #define RCC_HSI48_OFF ((uint8_t)0x00)
mbed_official 340:28d1f895c6fe 551 #define RCC_HSI48_ON ((uint8_t)0x01)
mbed_official 340:28d1f895c6fe 552
mbed_official 340:28d1f895c6fe 553 #define IS_RCC_HSI48(HSI48) (((HSI48) == RCC_HSI48_OFF) || ((HSI48) == RCC_HSI48_ON))
mbed_official 340:28d1f895c6fe 554 /**
mbed_official 340:28d1f895c6fe 555 * @}
mbed_official 340:28d1f895c6fe 556 */
mbed_official 340:28d1f895c6fe 557
mbed_official 340:28d1f895c6fe 558 #else
mbed_official 340:28d1f895c6fe 559 /** @defgroup RCCEx_PLL_Clock_Source RCCEx PLL Clock Source
mbed_official 340:28d1f895c6fe 560 * @{
mbed_official 340:28d1f895c6fe 561 */
mbed_official 340:28d1f895c6fe 562 #define RCC_PLLSOURCE_HSI RCC_CFGR_PLLSRC_HSI_DIV2
mbed_official 340:28d1f895c6fe 563
mbed_official 340:28d1f895c6fe 564 #define IS_RCC_PLLSOURCE(SOURCE) (((SOURCE) == RCC_PLLSOURCE_HSI) || \
mbed_official 340:28d1f895c6fe 565 ((SOURCE) == RCC_PLLSOURCE_HSE))
mbed_official 340:28d1f895c6fe 566 /**
mbed_official 340:28d1f895c6fe 567 * @}
mbed_official 340:28d1f895c6fe 568 */
mbed_official 340:28d1f895c6fe 569
mbed_official 340:28d1f895c6fe 570 /** @defgroup RCCEx_System_Clock_Source RCCEx System Clock Source
mbed_official 340:28d1f895c6fe 571 * @{
mbed_official 340:28d1f895c6fe 572 */
mbed_official 340:28d1f895c6fe 573 #define IS_RCC_SYSCLKSOURCE(SOURCE) (((SOURCE) == RCC_SYSCLKSOURCE_HSI) || \
mbed_official 340:28d1f895c6fe 574 ((SOURCE) == RCC_SYSCLKSOURCE_HSE) || \
mbed_official 340:28d1f895c6fe 575 ((SOURCE) == RCC_SYSCLKSOURCE_PLLCLK))
mbed_official 340:28d1f895c6fe 576
mbed_official 340:28d1f895c6fe 577 #define IS_RCC_SYSCLKSOURCE_STATUS(SOURCE) (((SOURCE) == RCC_SYSCLKSOURCE_STATUS_HSI) || \
mbed_official 340:28d1f895c6fe 578 ((SOURCE) == RCC_SYSCLKSOURCE_STATUS_HSE) || \
mbed_official 340:28d1f895c6fe 579 ((SOURCE) == RCC_SYSCLKSOURCE_STATUS_PLLCLK))
mbed_official 340:28d1f895c6fe 580 /**
mbed_official 340:28d1f895c6fe 581 * @}
mbed_official 340:28d1f895c6fe 582 */
mbed_official 340:28d1f895c6fe 583
mbed_official 340:28d1f895c6fe 584 /** @defgroup RCCEx_HSI48_Config RCCEx HSI48 Config
mbed_official 340:28d1f895c6fe 585 * @{
mbed_official 340:28d1f895c6fe 586 */
mbed_official 340:28d1f895c6fe 587 #define RCC_HSI48_OFF ((uint8_t)0x00)
mbed_official 340:28d1f895c6fe 588
mbed_official 340:28d1f895c6fe 589 #define IS_RCC_HSI48(HSI48) (((HSI48) == RCC_HSI48_OFF))
mbed_official 340:28d1f895c6fe 590 /**
mbed_official 340:28d1f895c6fe 591 * @}
mbed_official 340:28d1f895c6fe 592 */
mbed_official 340:28d1f895c6fe 593
mbed_official 340:28d1f895c6fe 594 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 595 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 596 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 597
mbed_official 340:28d1f895c6fe 598
mbed_official 340:28d1f895c6fe 599 /** @defgroup RCCEx_MCOx_Clock_Prescaler RCCEx MCOx Clock Prescaler
mbed_official 340:28d1f895c6fe 600 * @{
mbed_official 340:28d1f895c6fe 601 */
mbed_official 340:28d1f895c6fe 602
mbed_official 340:28d1f895c6fe 603 #if defined(STM32F030x8) || defined(STM32F051x8) || defined(STM32F058xx)
mbed_official 340:28d1f895c6fe 604
mbed_official 340:28d1f895c6fe 605 #define RCC_MCO_NODIV ((uint32_t)0x00000000)
mbed_official 340:28d1f895c6fe 606
mbed_official 340:28d1f895c6fe 607 #define IS_RCC_MCODIV(DIV) (((DIV) == RCC_MCO_NODIV))
mbed_official 340:28d1f895c6fe 608
mbed_official 340:28d1f895c6fe 609 #endif /* STM32F030x8 || STM32F051x8 || STM32F058xx */
mbed_official 340:28d1f895c6fe 610
mbed_official 340:28d1f895c6fe 611 #if defined(STM32F030x6) || defined(STM32F031x6) || defined(STM32F038xx) || \
mbed_official 340:28d1f895c6fe 612 defined(STM32F042x6) || defined(STM32F048xx) || defined(STM32F071xB) || \
mbed_official 340:28d1f895c6fe 613 defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 614 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 615
mbed_official 340:28d1f895c6fe 616 #define RCC_MCO_DIV1 ((uint32_t)0x00000000)
mbed_official 340:28d1f895c6fe 617 #define RCC_MCO_DIV2 ((uint32_t)0x10000000)
mbed_official 340:28d1f895c6fe 618 #define RCC_MCO_DIV4 ((uint32_t)0x20000000)
mbed_official 340:28d1f895c6fe 619 #define RCC_MCO_DIV8 ((uint32_t)0x30000000)
mbed_official 340:28d1f895c6fe 620 #define RCC_MCO_DIV16 ((uint32_t)0x40000000)
mbed_official 340:28d1f895c6fe 621 #define RCC_MCO_DIV32 ((uint32_t)0x50000000)
mbed_official 340:28d1f895c6fe 622 #define RCC_MCO_DIV64 ((uint32_t)0x60000000)
mbed_official 340:28d1f895c6fe 623 #define RCC_MCO_DIV128 ((uint32_t)0x70000000)
mbed_official 340:28d1f895c6fe 624
mbed_official 340:28d1f895c6fe 625 #define IS_RCC_MCODIV(DIV) (((DIV) == RCC_MCO_DIV1) || ((DIV) == RCC_MCO_DIV2) || \
mbed_official 340:28d1f895c6fe 626 ((DIV) == RCC_MCO_DIV4) || ((DIV) == RCC_MCO_DIV8) || \
mbed_official 340:28d1f895c6fe 627 ((DIV) == RCC_MCO_DIV16) || ((DIV) == RCC_MCO_DIV32) || \
mbed_official 340:28d1f895c6fe 628 ((DIV) == RCC_MCO_DIV64) || ((DIV) == RCC_MCO_DIV128))
mbed_official 340:28d1f895c6fe 629
mbed_official 340:28d1f895c6fe 630 #endif /* STM32F030x6 || STM32F031x6 || STM32F038xx || STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 631 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 632 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 633
mbed_official 340:28d1f895c6fe 634 /**
mbed_official 340:28d1f895c6fe 635 * @}
mbed_official 340:28d1f895c6fe 636 */
mbed_official 340:28d1f895c6fe 637
mbed_official 340:28d1f895c6fe 638 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 639 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 640 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 641
mbed_official 340:28d1f895c6fe 642 /** @defgroup RCCEx_CRS_SynchroSource RCCEx CRS SynchroSource
mbed_official 340:28d1f895c6fe 643 * @{
mbed_official 340:28d1f895c6fe 644 */
mbed_official 340:28d1f895c6fe 645 #define RCC_CRS_SYNC_SOURCE_GPIO ((uint32_t)0x00) /*!< Synchro Signal soucre GPIO */
mbed_official 340:28d1f895c6fe 646 #define RCC_CRS_SYNC_SOURCE_LSE CRS_CFGR_SYNCSRC_0 /*!< Synchro Signal source LSE */
mbed_official 340:28d1f895c6fe 647 #define RCC_CRS_SYNC_SOURCE_USB CRS_CFGR_SYNCSRC_1 /*!< Synchro Signal source USB SOF (default)*/
mbed_official 340:28d1f895c6fe 648
mbed_official 340:28d1f895c6fe 649 #define IS_RCC_CRS_SYNC_SOURCE(_SOURCE_) (((_SOURCE_) == RCC_CRS_SYNC_SOURCE_GPIO) || \
mbed_official 340:28d1f895c6fe 650 ((_SOURCE_) == RCC_CRS_SYNC_SOURCE_LSE) || \
mbed_official 340:28d1f895c6fe 651 ((_SOURCE_) == RCC_CRS_SYNC_SOURCE_USB))
mbed_official 340:28d1f895c6fe 652 /**
mbed_official 340:28d1f895c6fe 653 * @}
mbed_official 340:28d1f895c6fe 654 */
mbed_official 340:28d1f895c6fe 655
mbed_official 340:28d1f895c6fe 656 /** @defgroup RCCEx_CRS_SynchroDivider RCCEx CRS SynchroDivider
mbed_official 340:28d1f895c6fe 657 * @{
mbed_official 340:28d1f895c6fe 658 */
mbed_official 340:28d1f895c6fe 659 #define RCC_CRS_SYNC_DIV1 ((uint32_t)0x00) /*!< Synchro Signal not divided (default) */
mbed_official 340:28d1f895c6fe 660 #define RCC_CRS_SYNC_DIV2 CRS_CFGR_SYNCDIV_0 /*!< Synchro Signal divided by 2 */
mbed_official 340:28d1f895c6fe 661 #define RCC_CRS_SYNC_DIV4 CRS_CFGR_SYNCDIV_1 /*!< Synchro Signal divided by 4 */
mbed_official 340:28d1f895c6fe 662 #define RCC_CRS_SYNC_DIV8 (CRS_CFGR_SYNCDIV_1 | CRS_CFGR_SYNCDIV_0) /*!< Synchro Signal divided by 8 */
mbed_official 340:28d1f895c6fe 663 #define RCC_CRS_SYNC_DIV16 CRS_CFGR_SYNCDIV_2 /*!< Synchro Signal divided by 16 */
mbed_official 340:28d1f895c6fe 664 #define RCC_CRS_SYNC_DIV32 (CRS_CFGR_SYNCDIV_2 | CRS_CFGR_SYNCDIV_0) /*!< Synchro Signal divided by 32 */
mbed_official 340:28d1f895c6fe 665 #define RCC_CRS_SYNC_DIV64 (CRS_CFGR_SYNCDIV_2 | CRS_CFGR_SYNCDIV_1) /*!< Synchro Signal divided by 64 */
mbed_official 340:28d1f895c6fe 666 #define RCC_CRS_SYNC_DIV128 CRS_CFGR_SYNCDIV /*!< Synchro Signal divided by 128 */
mbed_official 340:28d1f895c6fe 667
mbed_official 340:28d1f895c6fe 668 #define IS_RCC_CRS_SYNC_DIV(_DIV_) (((_DIV_) == RCC_CRS_SYNC_DIV1) || ((_DIV_) == RCC_CRS_SYNC_DIV2) || \
mbed_official 340:28d1f895c6fe 669 ((_DIV_) == RCC_CRS_SYNC_DIV4) || ((_DIV_) == RCC_CRS_SYNC_DIV8) || \
mbed_official 340:28d1f895c6fe 670 ((_DIV_) == RCC_CRS_SYNC_DIV16) || ((_DIV_) == RCC_CRS_SYNC_DIV32) || \
mbed_official 340:28d1f895c6fe 671 ((_DIV_) == RCC_CRS_SYNC_DIV64) || ((_DIV_) == RCC_CRS_SYNC_DIV128))
mbed_official 340:28d1f895c6fe 672 /**
mbed_official 340:28d1f895c6fe 673 * @}
mbed_official 340:28d1f895c6fe 674 */
mbed_official 340:28d1f895c6fe 675
mbed_official 340:28d1f895c6fe 676 /** @defgroup RCCEx_CRS_SynchroPolarity RCCEx CRS SynchroPolarity
mbed_official 340:28d1f895c6fe 677 * @{
mbed_official 340:28d1f895c6fe 678 */
mbed_official 340:28d1f895c6fe 679 #define RCC_CRS_SYNC_POLARITY_RISING ((uint32_t)0x00) /*!< Synchro Active on rising edge (default) */
mbed_official 340:28d1f895c6fe 680 #define RCC_CRS_SYNC_POLARITY_FALLING CRS_CFGR_SYNCPOL /*!< Synchro Active on falling edge */
mbed_official 340:28d1f895c6fe 681
mbed_official 340:28d1f895c6fe 682 #define IS_RCC_CRS_SYNC_POLARITY(_POLARITY_) (((_POLARITY_) == RCC_CRS_SYNC_POLARITY_RISING) || \
mbed_official 340:28d1f895c6fe 683 ((_POLARITY_) == RCC_CRS_SYNC_POLARITY_FALLING))
mbed_official 340:28d1f895c6fe 684 /**
mbed_official 340:28d1f895c6fe 685 * @}
mbed_official 340:28d1f895c6fe 686 */
mbed_official 340:28d1f895c6fe 687
mbed_official 340:28d1f895c6fe 688 /** @defgroup RCCEx_CRS_ReloadValueDefault RCCEx CRS ReloadValueDefault
mbed_official 340:28d1f895c6fe 689 * @{
mbed_official 340:28d1f895c6fe 690 */
mbed_official 340:28d1f895c6fe 691 #define RCC_CRS_RELOADVALUE_DEFAULT ((uint32_t)0xBB7F) /*!< The reset value of the RELOAD field corresponds
mbed_official 340:28d1f895c6fe 692 to a target frequency of 48 MHz and a synchronization signal frequency of 1 kHz (SOF signal from USB). */
mbed_official 340:28d1f895c6fe 693
mbed_official 340:28d1f895c6fe 694 #define IS_RCC_CRS_RELOADVALUE(_VALUE_) (((_VALUE_) <= 0xFFFF))
mbed_official 340:28d1f895c6fe 695 /**
mbed_official 340:28d1f895c6fe 696 * @}
mbed_official 340:28d1f895c6fe 697 */
mbed_official 340:28d1f895c6fe 698
mbed_official 340:28d1f895c6fe 699 /** @defgroup RCCEx_CRS_ErrorLimitDefault RCCEx CRS ErrorLimitDefault
mbed_official 340:28d1f895c6fe 700 * @{
mbed_official 340:28d1f895c6fe 701 */
mbed_official 340:28d1f895c6fe 702 #define RCC_CRS_ERRORLIMIT_DEFAULT ((uint32_t)0x22) /*!< Default Frequency error limit */
mbed_official 340:28d1f895c6fe 703
mbed_official 340:28d1f895c6fe 704 #define IS_RCC_CRS_ERRORLIMIT(_VALUE_) (((_VALUE_) <= 0xFF))
mbed_official 340:28d1f895c6fe 705 /**
mbed_official 340:28d1f895c6fe 706 * @}
mbed_official 340:28d1f895c6fe 707 */
mbed_official 340:28d1f895c6fe 708
mbed_official 340:28d1f895c6fe 709 /** @defgroup RCCEx_CRS_HSI48CalibrationDefault RCCEx CRS HSI48CalibrationDefault
mbed_official 340:28d1f895c6fe 710 * @{
mbed_official 340:28d1f895c6fe 711 */
mbed_official 340:28d1f895c6fe 712 #define RCC_CRS_HSI48CALIBRATION_DEFAULT ((uint32_t)0x20) /*!< The default value is 32, which corresponds to the middle of the trimming interval.
mbed_official 340:28d1f895c6fe 713 The trimming step is around 67 kHz between two consecutive TRIM steps. A higher TRIM value
mbed_official 340:28d1f895c6fe 714 corresponds to a higher output frequency */
mbed_official 340:28d1f895c6fe 715
mbed_official 340:28d1f895c6fe 716 #define IS_RCC_CRS_HSI48CALIBRATION(_VALUE_) (((_VALUE_) <= 0x3F))
mbed_official 340:28d1f895c6fe 717 /**
mbed_official 340:28d1f895c6fe 718 * @}
mbed_official 340:28d1f895c6fe 719 */
mbed_official 340:28d1f895c6fe 720
mbed_official 340:28d1f895c6fe 721 /** @defgroup RCCEx_CRS_FreqErrorDirection RCCEx CRS FreqErrorDirection
mbed_official 340:28d1f895c6fe 722 * @{
mbed_official 340:28d1f895c6fe 723 */
mbed_official 340:28d1f895c6fe 724 #define RCC_CRS_FREQERRORDIR_UP ((uint32_t)0x00) /*!< Upcounting direction, the actual frequency is above the target */
mbed_official 340:28d1f895c6fe 725 #define RCC_CRS_FREQERRORDIR_DOWN ((uint32_t)CRS_ISR_FEDIR) /*!< Downcounting direction, the actual frequency is below the target */
mbed_official 340:28d1f895c6fe 726
mbed_official 340:28d1f895c6fe 727 #define IS_RCC_CRS_FREQERRORDIR(_DIR_) (((_DIR_) == RCC_CRS_FREQERRORDIR_UP) || \
mbed_official 340:28d1f895c6fe 728 ((_DIR_) == RCC_CRS_FREQERRORDIR_DOWN))
mbed_official 340:28d1f895c6fe 729 /**
mbed_official 340:28d1f895c6fe 730 * @}
mbed_official 340:28d1f895c6fe 731 */
mbed_official 340:28d1f895c6fe 732
mbed_official 340:28d1f895c6fe 733 /** @defgroup RCCEx_CRS_Interrupt_Sources RCCEx CRS Interrupt Sources
mbed_official 340:28d1f895c6fe 734 * @{
mbed_official 340:28d1f895c6fe 735 */
mbed_official 340:28d1f895c6fe 736 #define RCC_CRS_IT_SYNCOK CRS_ISR_SYNCOKF /*!< SYNC event OK */
mbed_official 340:28d1f895c6fe 737 #define RCC_CRS_IT_SYNCWARN CRS_ISR_SYNCWARNF /*!< SYNC warning */
mbed_official 340:28d1f895c6fe 738 #define RCC_CRS_IT_ERR CRS_ISR_ERRF /*!< error */
mbed_official 340:28d1f895c6fe 739 #define RCC_CRS_IT_ESYNC CRS_ISR_ESYNCF /*!< Expected SYNC */
mbed_official 340:28d1f895c6fe 740 #define RCC_CRS_IT_TRIMOVF CRS_ISR_TRIMOVF /*!< Trimming overflow or underflow */
mbed_official 340:28d1f895c6fe 741 #define RCC_CRS_IT_SYNCERR CRS_ISR_SYNCERR /*!< SYNC error */
mbed_official 340:28d1f895c6fe 742 #define RCC_CRS_IT_SYNCMISS CRS_ISR_SYNCMISS /*!< SYNC missed*/
mbed_official 340:28d1f895c6fe 743
mbed_official 340:28d1f895c6fe 744 /**
mbed_official 340:28d1f895c6fe 745 * @}
mbed_official 340:28d1f895c6fe 746 */
mbed_official 340:28d1f895c6fe 747
mbed_official 340:28d1f895c6fe 748 /** @defgroup RCCEx_CRS_Flags RCCEx CRS Flags
mbed_official 340:28d1f895c6fe 749 * @{
mbed_official 340:28d1f895c6fe 750 */
mbed_official 340:28d1f895c6fe 751 #define RCC_CRS_FLAG_SYNCOK CRS_ISR_SYNCOKF /* SYNC event OK flag */
mbed_official 340:28d1f895c6fe 752 #define RCC_CRS_FLAG_SYNCWARN CRS_ISR_SYNCWARNF /* SYNC warning flag */
mbed_official 340:28d1f895c6fe 753 #define RCC_CRS_FLAG_ERR CRS_ISR_ERRF /* Error flag */
mbed_official 340:28d1f895c6fe 754 #define RCC_CRS_FLAG_ESYNC CRS_ISR_ESYNCF /* Expected SYNC flag */
mbed_official 340:28d1f895c6fe 755 #define RCC_CRS_FLAG_TRIMOVF CRS_ISR_TRIMOVF /*!< Trimming overflow or underflow */
mbed_official 340:28d1f895c6fe 756 #define RCC_CRS_FLAG_SYNCERR CRS_ISR_SYNCERR /*!< SYNC error */
mbed_official 340:28d1f895c6fe 757 #define RCC_CRS_FLAG_SYNCMISS CRS_ISR_SYNCMISS /*!< SYNC missed*/
mbed_official 340:28d1f895c6fe 758
mbed_official 340:28d1f895c6fe 759 /**
mbed_official 340:28d1f895c6fe 760 * @}
mbed_official 340:28d1f895c6fe 761 */
mbed_official 340:28d1f895c6fe 762
mbed_official 340:28d1f895c6fe 763 /**
mbed_official 340:28d1f895c6fe 764 * @}
mbed_official 340:28d1f895c6fe 765 */
mbed_official 340:28d1f895c6fe 766
mbed_official 340:28d1f895c6fe 767 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 768 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 769 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 770
mbed_official 340:28d1f895c6fe 771 /* Exported macros ------------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 772 /** @defgroup RCCEx_Exported_Macros RCCEx Exported Macros
mbed_official 340:28d1f895c6fe 773 * @{
mbed_official 340:28d1f895c6fe 774 */
mbed_official 340:28d1f895c6fe 775
mbed_official 340:28d1f895c6fe 776 /** @defgroup RCCEx_Peripheral_Clock_Enable_Disable RCCEx_Peripheral_Clock_Enable_Disable
mbed_official 340:28d1f895c6fe 777 * @brief Enables or disables the AHB1 peripheral clock.
mbed_official 340:28d1f895c6fe 778 * @note After reset, the peripheral clock (used for registers read/write access)
mbed_official 340:28d1f895c6fe 779 * is disabled and the application software has to enable this clock before
mbed_official 340:28d1f895c6fe 780 * using it.
mbed_official 340:28d1f895c6fe 781 * @{
mbed_official 340:28d1f895c6fe 782 */
mbed_official 340:28d1f895c6fe 783 #if defined(STM32F030x6) || defined(STM32F030x8) || \
mbed_official 340:28d1f895c6fe 784 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 785 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 786 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 787
mbed_official 340:28d1f895c6fe 788 #define __GPIOD_CLK_ENABLE() (RCC->AHBENR |= (RCC_AHBENR_GPIODEN))
mbed_official 340:28d1f895c6fe 789
mbed_official 340:28d1f895c6fe 790 #define __GPIOD_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIODEN))
mbed_official 340:28d1f895c6fe 791
mbed_official 340:28d1f895c6fe 792 #endif /* STM32F030x6 || STM32F030x8 || */
mbed_official 340:28d1f895c6fe 793 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 794 /* STM32F071xB || STM32F072xB || STM32F078xx |[ */
mbed_official 340:28d1f895c6fe 795 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 796
mbed_official 340:28d1f895c6fe 797 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 798 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 799
mbed_official 340:28d1f895c6fe 800 #define __GPIOE_CLK_ENABLE() (RCC->AHBENR |= (RCC_AHBENR_GPIOEEN))
mbed_official 340:28d1f895c6fe 801
mbed_official 340:28d1f895c6fe 802 #define __GPIOE_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_GPIOEEN))
mbed_official 340:28d1f895c6fe 803
mbed_official 340:28d1f895c6fe 804 #endif /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 805 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 806
mbed_official 340:28d1f895c6fe 807 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 808 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 809 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 810 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 811
mbed_official 340:28d1f895c6fe 812 #define __TSC_CLK_ENABLE() (RCC->AHBENR |= (RCC_AHBENR_TSCEN))
mbed_official 340:28d1f895c6fe 813
mbed_official 340:28d1f895c6fe 814 #define __TSC_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_TSCEN))
mbed_official 340:28d1f895c6fe 815
mbed_official 340:28d1f895c6fe 816 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 817 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 818 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 819 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 820
mbed_official 340:28d1f895c6fe 821 #if defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 822
mbed_official 340:28d1f895c6fe 823 #define __DMA2_CLK_ENABLE() (RCC->AHBENR |= (RCC_AHBENR_DMA2EN))
mbed_official 340:28d1f895c6fe 824
mbed_official 340:28d1f895c6fe 825 #define __DMA2_CLK_DISABLE() (RCC->AHBENR &= ~(RCC_AHBENR_DMA2EN))
mbed_official 340:28d1f895c6fe 826
mbed_official 340:28d1f895c6fe 827 #endif /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 828
mbed_official 340:28d1f895c6fe 829 /** @brief Enable or disable the Low Speed APB (APB1) peripheral clock.
mbed_official 340:28d1f895c6fe 830 * @note After reset, the peripheral clock (used for registers read/write access)
mbed_official 340:28d1f895c6fe 831 * is disabled and the application software has to enable this clock before
mbed_official 340:28d1f895c6fe 832 * using it.
mbed_official 340:28d1f895c6fe 833 */
mbed_official 340:28d1f895c6fe 834 #if defined(STM32F030x8) || \
mbed_official 340:28d1f895c6fe 835 defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 836 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 837 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 838 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 839
mbed_official 340:28d1f895c6fe 840 #define __USART2_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_USART2EN))
mbed_official 340:28d1f895c6fe 841 #define __SPI2_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_SPI2EN))
mbed_official 340:28d1f895c6fe 842
mbed_official 340:28d1f895c6fe 843 #define __USART2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_USART2EN))
mbed_official 340:28d1f895c6fe 844 #define __SPI2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_SPI2EN))
mbed_official 340:28d1f895c6fe 845
mbed_official 340:28d1f895c6fe 846 #endif /* STM32F030x8 || STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 847 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 848 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 849 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 850
mbed_official 340:28d1f895c6fe 851 #if defined(STM32F031x6) || defined(STM32F038xx) || \
mbed_official 340:28d1f895c6fe 852 defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 853 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 854 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 855 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 856
mbed_official 340:28d1f895c6fe 857 #define __TIM2_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_TIM2EN))
mbed_official 340:28d1f895c6fe 858
mbed_official 340:28d1f895c6fe 859 #define __TIM2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM2EN))
mbed_official 340:28d1f895c6fe 860
mbed_official 340:28d1f895c6fe 861 #endif /* STM32F031x6 || STM32F038xx || */
mbed_official 340:28d1f895c6fe 862 /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 863 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 864 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 865 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 866
mbed_official 340:28d1f895c6fe 867 #if defined(STM32F030x8) || \
mbed_official 340:28d1f895c6fe 868 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 869 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 870 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 871
mbed_official 340:28d1f895c6fe 872 #define __TIM6_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_TIM6EN))
mbed_official 340:28d1f895c6fe 873 #define __I2C2_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_I2C2EN))
mbed_official 340:28d1f895c6fe 874
mbed_official 340:28d1f895c6fe 875 #define __TIM6_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM6EN))
mbed_official 340:28d1f895c6fe 876 #define __I2C2_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_I2C2EN))
mbed_official 340:28d1f895c6fe 877
mbed_official 340:28d1f895c6fe 878 #endif /* STM32F030x8 || */
mbed_official 340:28d1f895c6fe 879 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 880 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 881 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 882
mbed_official 340:28d1f895c6fe 883 #if defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 884 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 885 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 886
mbed_official 340:28d1f895c6fe 887 #define __DAC1_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_DACEN))
mbed_official 340:28d1f895c6fe 888
mbed_official 340:28d1f895c6fe 889 #define __DAC1_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_DACEN))
mbed_official 340:28d1f895c6fe 890
mbed_official 340:28d1f895c6fe 891 #endif /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 892 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 893 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 894
mbed_official 340:28d1f895c6fe 895 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 896 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 897 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 898 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 899
mbed_official 340:28d1f895c6fe 900 #define __CEC_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_CECEN))
mbed_official 340:28d1f895c6fe 901
mbed_official 340:28d1f895c6fe 902 #define __CEC_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_CECEN))
mbed_official 340:28d1f895c6fe 903
mbed_official 340:28d1f895c6fe 904 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 905 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 906 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 907 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 908
mbed_official 340:28d1f895c6fe 909 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 910 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 911
mbed_official 340:28d1f895c6fe 912 #define __TIM7_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_TIM7EN))
mbed_official 340:28d1f895c6fe 913 #define __USART3_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_USART3EN))
mbed_official 340:28d1f895c6fe 914 #define __USART4_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_USART4EN))
mbed_official 340:28d1f895c6fe 915
mbed_official 340:28d1f895c6fe 916 #define __TIM7_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_TIM7EN))
mbed_official 340:28d1f895c6fe 917 #define __USART3_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_USART3EN))
mbed_official 340:28d1f895c6fe 918 #define __USART4_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_USART4EN))
mbed_official 340:28d1f895c6fe 919
mbed_official 340:28d1f895c6fe 920 #endif /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 921 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 922
mbed_official 340:28d1f895c6fe 923 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 924 defined(STM32F072xB) || defined(STM32F078xx)
mbed_official 340:28d1f895c6fe 925
mbed_official 340:28d1f895c6fe 926 #define __USB_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_USBEN))
mbed_official 340:28d1f895c6fe 927
mbed_official 340:28d1f895c6fe 928 #define __USB_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_USBEN))
mbed_official 340:28d1f895c6fe 929
mbed_official 340:28d1f895c6fe 930 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 931 /* STM32F072xB || STM32F078xx */
mbed_official 340:28d1f895c6fe 932
mbed_official 340:28d1f895c6fe 933 #if defined(STM32F042x6) || defined(STM32F048xx) || defined(STM32F072xB) || \
mbed_official 340:28d1f895c6fe 934 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 935
mbed_official 340:28d1f895c6fe 936 #define __CAN_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_CANEN))
mbed_official 340:28d1f895c6fe 937 #define __CAN_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_CANEN))
mbed_official 340:28d1f895c6fe 938
mbed_official 340:28d1f895c6fe 939 #endif /* STM32F042x6 || STM32F048xx || STM32F072xB || */
mbed_official 340:28d1f895c6fe 940 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 941
mbed_official 340:28d1f895c6fe 942 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 943 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 944 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 945
mbed_official 340:28d1f895c6fe 946 #define __CRS_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_CRSEN))
mbed_official 340:28d1f895c6fe 947
mbed_official 340:28d1f895c6fe 948 #define __CRS_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_CRSEN))
mbed_official 340:28d1f895c6fe 949
mbed_official 340:28d1f895c6fe 950 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 951 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 952 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 953
mbed_official 340:28d1f895c6fe 954 #if defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 955
mbed_official 340:28d1f895c6fe 956 #define __USART5_CLK_ENABLE() (RCC->APB1ENR |= (RCC_APB1ENR_USART5EN))
mbed_official 340:28d1f895c6fe 957
mbed_official 340:28d1f895c6fe 958 #define __USART5_CLK_DISABLE() (RCC->APB1ENR &= ~(RCC_APB1ENR_USART5EN))
mbed_official 340:28d1f895c6fe 959
mbed_official 340:28d1f895c6fe 960 #endif /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 961
mbed_official 340:28d1f895c6fe 962 /** @brief Enable or disable the High Speed APB (APB2) peripheral clock.
mbed_official 340:28d1f895c6fe 963 * @note After reset, the peripheral clock (used for registers read/write access)
mbed_official 340:28d1f895c6fe 964 * is disabled and the application software has to enable this clock before
mbed_official 340:28d1f895c6fe 965 * using it.
mbed_official 340:28d1f895c6fe 966 */
mbed_official 340:28d1f895c6fe 967 #if defined(STM32F030x8) || defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 968 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 969 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 970 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 971
mbed_official 340:28d1f895c6fe 972 #define __TIM15_CLK_ENABLE() (RCC->APB2ENR |= (RCC_APB2ENR_TIM15EN))
mbed_official 340:28d1f895c6fe 973
mbed_official 340:28d1f895c6fe 974 #define __TIM15_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_TIM15EN))
mbed_official 340:28d1f895c6fe 975
mbed_official 340:28d1f895c6fe 976 #endif /* STM32F030x8 || STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 977 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 978 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 979 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 980
mbed_official 340:28d1f895c6fe 981 #if defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 982
mbed_official 340:28d1f895c6fe 983 #define __USART6_CLK_ENABLE() (RCC->APB2ENR |= (RCC_APB2ENR_USART6EN))
mbed_official 340:28d1f895c6fe 984 #define __USART7_CLK_ENABLE() (RCC->APB2ENR |= (RCC_APB2ENR_USART7EN))
mbed_official 340:28d1f895c6fe 985 #define __USART8_CLK_ENABLE() (RCC->APB2ENR |= (RCC_APB2ENR_USART8EN))
mbed_official 340:28d1f895c6fe 986
mbed_official 340:28d1f895c6fe 987 #define __USART6_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_USART6EN))
mbed_official 340:28d1f895c6fe 988 #define __USART7_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_USART7EN))
mbed_official 340:28d1f895c6fe 989 #define __USART8_CLK_DISABLE() (RCC->APB2ENR &= ~(RCC_APB2ENR_USART8EN))
mbed_official 340:28d1f895c6fe 990
mbed_official 340:28d1f895c6fe 991 #endif /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 992
mbed_official 340:28d1f895c6fe 993 /**
mbed_official 340:28d1f895c6fe 994 * @}
mbed_official 340:28d1f895c6fe 995 */
mbed_official 340:28d1f895c6fe 996
mbed_official 340:28d1f895c6fe 997
mbed_official 340:28d1f895c6fe 998 /** @defgroup RCCEx_Force_Release_Peripheral_Reset RCCEx Force Release Peripheral Reset
mbed_official 340:28d1f895c6fe 999 * @brief Forces or releases peripheral reset.
mbed_official 340:28d1f895c6fe 1000 * @{
mbed_official 340:28d1f895c6fe 1001 */
mbed_official 340:28d1f895c6fe 1002
mbed_official 340:28d1f895c6fe 1003 /** @brief Force or release AHB peripheral reset.
mbed_official 340:28d1f895c6fe 1004 */
mbed_official 340:28d1f895c6fe 1005 #if defined(STM32F030x6) || defined(STM32F030x8) || \
mbed_official 340:28d1f895c6fe 1006 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 1007 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1008 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1009
mbed_official 340:28d1f895c6fe 1010 #define __GPIOD_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIODRST))
mbed_official 340:28d1f895c6fe 1011
mbed_official 340:28d1f895c6fe 1012 #define __GPIOD_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIODRST))
mbed_official 340:28d1f895c6fe 1013
mbed_official 340:28d1f895c6fe 1014 #endif /* STM32F030x6 || STM32F030x8 || */
mbed_official 340:28d1f895c6fe 1015 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 1016 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1017 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1018
mbed_official 340:28d1f895c6fe 1019 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1020 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1021
mbed_official 340:28d1f895c6fe 1022 #define __GPIOE_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_GPIOERST))
mbed_official 340:28d1f895c6fe 1023
mbed_official 340:28d1f895c6fe 1024 #define __GPIOE_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_GPIOERST))
mbed_official 340:28d1f895c6fe 1025
mbed_official 340:28d1f895c6fe 1026 #endif /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1027 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1028
mbed_official 340:28d1f895c6fe 1029 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 1030 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 1031 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1032 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1033
mbed_official 340:28d1f895c6fe 1034 #define __TSC_FORCE_RESET() (RCC->AHBRSTR |= (RCC_AHBRSTR_TSCRST))
mbed_official 340:28d1f895c6fe 1035
mbed_official 340:28d1f895c6fe 1036 #define __TSC_RELEASE_RESET() (RCC->AHBRSTR &= ~(RCC_AHBRSTR_TSCRST))
mbed_official 340:28d1f895c6fe 1037
mbed_official 340:28d1f895c6fe 1038 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 1039 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 1040 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1041 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1042
mbed_official 340:28d1f895c6fe 1043 /** @brief Force or release APB1 peripheral reset.
mbed_official 340:28d1f895c6fe 1044 */
mbed_official 340:28d1f895c6fe 1045 #if defined(STM32F030x8) || \
mbed_official 340:28d1f895c6fe 1046 defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 1047 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 1048 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1049 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1050
mbed_official 340:28d1f895c6fe 1051 #define __USART2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_USART2RST))
mbed_official 340:28d1f895c6fe 1052 #define __SPI2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_SPI2RST))
mbed_official 340:28d1f895c6fe 1053
mbed_official 340:28d1f895c6fe 1054 #define __USART2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_USART2RST))
mbed_official 340:28d1f895c6fe 1055 #define __SPI2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_SPI2RST))
mbed_official 340:28d1f895c6fe 1056
mbed_official 340:28d1f895c6fe 1057 #endif /* STM32F030x8 || STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 1058 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 1059 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1060 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1061
mbed_official 340:28d1f895c6fe 1062 #if defined(STM32F031x6) || defined(STM32F038xx) || \
mbed_official 340:28d1f895c6fe 1063 defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 1064 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 1065 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1066 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1067
mbed_official 340:28d1f895c6fe 1068 #define __TIM2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM2RST))
mbed_official 340:28d1f895c6fe 1069
mbed_official 340:28d1f895c6fe 1070 #define __TIM2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM2RST))
mbed_official 340:28d1f895c6fe 1071
mbed_official 340:28d1f895c6fe 1072 #endif /* STM32F031x6 || STM32F038xx || */
mbed_official 340:28d1f895c6fe 1073 /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 1074 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 1075 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1076 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1077
mbed_official 340:28d1f895c6fe 1078 #if defined(STM32F030x8) || \
mbed_official 340:28d1f895c6fe 1079 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 1080 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1081 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1082
mbed_official 340:28d1f895c6fe 1083 #define __TIM6_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM6RST))
mbed_official 340:28d1f895c6fe 1084 #define __I2C2_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_I2C2RST))
mbed_official 340:28d1f895c6fe 1085
mbed_official 340:28d1f895c6fe 1086 #define __TIM6_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM6RST))
mbed_official 340:28d1f895c6fe 1087 #define __I2C2_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_I2C2RST))
mbed_official 340:28d1f895c6fe 1088
mbed_official 340:28d1f895c6fe 1089 #endif /* STM32F030x8 || */
mbed_official 340:28d1f895c6fe 1090 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 1091 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1092 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1093
mbed_official 340:28d1f895c6fe 1094 #if defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 1095 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1096 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1097
mbed_official 340:28d1f895c6fe 1098 #define __DAC1_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_DACRST))
mbed_official 340:28d1f895c6fe 1099
mbed_official 340:28d1f895c6fe 1100 #define __DAC1_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_DACRST))
mbed_official 340:28d1f895c6fe 1101
mbed_official 340:28d1f895c6fe 1102 #endif /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 1103 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1104 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1105
mbed_official 340:28d1f895c6fe 1106 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 1107 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 1108 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1109 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1110
mbed_official 340:28d1f895c6fe 1111 #define __CEC_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_CECRST))
mbed_official 340:28d1f895c6fe 1112
mbed_official 340:28d1f895c6fe 1113 #define __CEC_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_CECRST))
mbed_official 340:28d1f895c6fe 1114
mbed_official 340:28d1f895c6fe 1115 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 1116 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 1117 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1118 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1119
mbed_official 340:28d1f895c6fe 1120 #if defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1121 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1122
mbed_official 340:28d1f895c6fe 1123 #define __TIM7_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM7RST))
mbed_official 340:28d1f895c6fe 1124 #define __USART3_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_USART3RST))
mbed_official 340:28d1f895c6fe 1125 #define __USART4_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_USART4RST))
mbed_official 340:28d1f895c6fe 1126
mbed_official 340:28d1f895c6fe 1127 #define __TIM7_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_TIM7RST))
mbed_official 340:28d1f895c6fe 1128 #define __USART3_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_USART3RST))
mbed_official 340:28d1f895c6fe 1129 #define __USART4_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_USART4RST))
mbed_official 340:28d1f895c6fe 1130
mbed_official 340:28d1f895c6fe 1131 #endif /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1132 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1133
mbed_official 340:28d1f895c6fe 1134 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 1135 defined(STM32F072xB) || defined(STM32F078xx)
mbed_official 340:28d1f895c6fe 1136
mbed_official 340:28d1f895c6fe 1137 #define __USB_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_USBRST))
mbed_official 340:28d1f895c6fe 1138
mbed_official 340:28d1f895c6fe 1139 #define __USB_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_USBRST))
mbed_official 340:28d1f895c6fe 1140
mbed_official 340:28d1f895c6fe 1141 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 1142 /* STM32F072xB || STM32F078xx */
mbed_official 340:28d1f895c6fe 1143
mbed_official 340:28d1f895c6fe 1144 #if defined(STM32F042x6) || defined(STM32F048xx) || defined(STM32F072xB) || \
mbed_official 340:28d1f895c6fe 1145 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1146
mbed_official 340:28d1f895c6fe 1147 #define __CAN_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_CANRST))
mbed_official 340:28d1f895c6fe 1148
mbed_official 340:28d1f895c6fe 1149 #define __CAN_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_CANRST))
mbed_official 340:28d1f895c6fe 1150
mbed_official 340:28d1f895c6fe 1151 #endif /* STM32F042x6 || STM32F048xx || STM32F072xB || */
mbed_official 340:28d1f895c6fe 1152 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1153
mbed_official 340:28d1f895c6fe 1154 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 1155 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1156 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1157
mbed_official 340:28d1f895c6fe 1158 #define __CRS_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_CRSRST))
mbed_official 340:28d1f895c6fe 1159
mbed_official 340:28d1f895c6fe 1160 #define __CRS_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_CRSRST))
mbed_official 340:28d1f895c6fe 1161
mbed_official 340:28d1f895c6fe 1162 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 1163 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1164 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1165
mbed_official 340:28d1f895c6fe 1166 #if defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1167
mbed_official 340:28d1f895c6fe 1168 #define __USART5_FORCE_RESET() (RCC->APB1RSTR |= (RCC_APB1RSTR_USART5RST))
mbed_official 340:28d1f895c6fe 1169
mbed_official 340:28d1f895c6fe 1170 #define __USART5_RELEASE_RESET() (RCC->APB1RSTR &= ~(RCC_APB1RSTR_USART5RST))
mbed_official 340:28d1f895c6fe 1171
mbed_official 340:28d1f895c6fe 1172 #endif /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1173
mbed_official 340:28d1f895c6fe 1174
mbed_official 340:28d1f895c6fe 1175 /** @brief Force or release APB2 peripheral reset.
mbed_official 340:28d1f895c6fe 1176 */
mbed_official 340:28d1f895c6fe 1177 #if defined(STM32F030x8) || defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 1178 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 1179 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1180 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1181
mbed_official 340:28d1f895c6fe 1182 #define __TIM15_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_TIM15RST))
mbed_official 340:28d1f895c6fe 1183
mbed_official 340:28d1f895c6fe 1184 #define __TIM15_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_TIM15RST))
mbed_official 340:28d1f895c6fe 1185
mbed_official 340:28d1f895c6fe 1186 #endif /* STM32F030x8 || STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 1187 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 1188 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1189 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1190
mbed_official 340:28d1f895c6fe 1191 #if defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1192
mbed_official 340:28d1f895c6fe 1193 #define __USART6_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_USART6RST))
mbed_official 340:28d1f895c6fe 1194 #define __USART7_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_USART7RST))
mbed_official 340:28d1f895c6fe 1195 #define __USART8_FORCE_RESET() (RCC->APB2RSTR |= (RCC_APB2RSTR_USART8RST))
mbed_official 340:28d1f895c6fe 1196
mbed_official 340:28d1f895c6fe 1197 #define __USART6_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_USART6RST))
mbed_official 340:28d1f895c6fe 1198 #define __USART7_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_USART7RST))
mbed_official 340:28d1f895c6fe 1199 #define __USART8_RELEASE_RESET() (RCC->APB2RSTR &= ~(RCC_APB2RSTR_USART8RST))
mbed_official 340:28d1f895c6fe 1200
mbed_official 340:28d1f895c6fe 1201 #endif /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1202
mbed_official 340:28d1f895c6fe 1203 /**
mbed_official 340:28d1f895c6fe 1204 * @}
mbed_official 340:28d1f895c6fe 1205 */
mbed_official 340:28d1f895c6fe 1206
mbed_official 340:28d1f895c6fe 1207 /** @defgroup RCCEx_HSI48_Enable_Disable RCCEx HSI48 Enable Disable
mbed_official 340:28d1f895c6fe 1208 * @brief Macros to enable or disable the Internal 48Mhz High Speed oscillator (HSI48).
mbed_official 340:28d1f895c6fe 1209 * @note The HSI48 is stopped by hardware when entering STOP and STANDBY modes.
mbed_official 340:28d1f895c6fe 1210 * @note HSI48 can not be stopped if it is used as system clock source. In this case,
mbed_official 340:28d1f895c6fe 1211 * you have to select another source of the system clock then stop the HSI14.
mbed_official 340:28d1f895c6fe 1212 * @note After enabling the HSI48 with __HAL_RCC_HSI48_ENABLE(), the application software
mbed_official 340:28d1f895c6fe 1213 * should wait on HSI48RDY flag to be set indicating that HSI48 clock is stable and can be
mbed_official 340:28d1f895c6fe 1214 * used as system clock source. This is not necessary if HAL_RCC_OscConfig() is used.
mbed_official 340:28d1f895c6fe 1215 * @note When the HSI48 is stopped, HSI48RDY flag goes low after 6 HSI48 oscillator
mbed_official 340:28d1f895c6fe 1216 * clock cycles.
mbed_official 340:28d1f895c6fe 1217 * @{
mbed_official 340:28d1f895c6fe 1218 */
mbed_official 340:28d1f895c6fe 1219 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 1220 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1221 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1222
mbed_official 340:28d1f895c6fe 1223 #define __HAL_RCC_HSI48_ENABLE() SET_BIT(RCC->CR2, RCC_CR2_HSI48ON)
mbed_official 340:28d1f895c6fe 1224 #define __HAL_RCC_HSI48_DISABLE() CLEAR_BIT(RCC->CR2, RCC_CR2_HSI48ON)
mbed_official 340:28d1f895c6fe 1225
mbed_official 340:28d1f895c6fe 1226 /** @brief Macro to get the Internal 48Mhz High Speed oscillator (HSI48) state.
mbed_official 340:28d1f895c6fe 1227 * @retval The clock source can be one of the following values:
mbed_official 340:28d1f895c6fe 1228 * @arg RCC_HSI48_ON: HSI48 enabled
mbed_official 340:28d1f895c6fe 1229 * @arg RCC_HSI48_OFF: HSI48 disabled
mbed_official 340:28d1f895c6fe 1230 */
mbed_official 340:28d1f895c6fe 1231 #define __HAL_RCC_GET_HSI48_STATE() \
mbed_official 340:28d1f895c6fe 1232 (((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CR2_HSI48ON)) != RESET) ? RCC_HSI48_ON : RCC_HSI48_OFF)
mbed_official 340:28d1f895c6fe 1233
mbed_official 340:28d1f895c6fe 1234 #else
mbed_official 340:28d1f895c6fe 1235
mbed_official 340:28d1f895c6fe 1236 /** @brief Macro to get the Internal 48Mhz High Speed oscillator (HSI48) state.
mbed_official 340:28d1f895c6fe 1237 * @retval The clock source can be one of the following values:
mbed_official 340:28d1f895c6fe 1238 * @arg RCC_HSI_OFF: HSI48 disabled
mbed_official 340:28d1f895c6fe 1239 */
mbed_official 340:28d1f895c6fe 1240 #define __HAL_RCC_GET_HSI48_STATE() RCC_HSI_OFF
mbed_official 340:28d1f895c6fe 1241
mbed_official 340:28d1f895c6fe 1242 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 1243 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1244 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1245
mbed_official 340:28d1f895c6fe 1246 /**
mbed_official 340:28d1f895c6fe 1247 * @}
mbed_official 340:28d1f895c6fe 1248 */
mbed_official 340:28d1f895c6fe 1249
mbed_official 340:28d1f895c6fe 1250 /** @defgroup RCCEx_Peripheral_Clock_Source_Config RCCEx Peripheral Clock Source Config
mbed_official 340:28d1f895c6fe 1251 * @{
mbed_official 340:28d1f895c6fe 1252 */
mbed_official 340:28d1f895c6fe 1253 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 1254 defined(STM32F072xB) || defined(STM32F078xx)
mbed_official 340:28d1f895c6fe 1255
mbed_official 340:28d1f895c6fe 1256 /** @brief Macro to configure the USB clock (USBCLK).
mbed_official 340:28d1f895c6fe 1257 * @param __USBCLKSource__: specifies the USB clock source.
mbed_official 340:28d1f895c6fe 1258 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 1259 * @arg RCC_USBCLKSOURCE_HSI48: HSI48 selected as USB clock
mbed_official 340:28d1f895c6fe 1260 * @arg RCC_USBCLKSOURCE_PLLCLK: PLL Clock selected as USB clock
mbed_official 340:28d1f895c6fe 1261 */
mbed_official 340:28d1f895c6fe 1262 #define __HAL_RCC_USB_CONFIG(__USBCLKSource__) \
mbed_official 340:28d1f895c6fe 1263 MODIFY_REG(RCC->CFGR3, RCC_CFGR3_USBSW, (uint32_t)(__USBCLKSource__))
mbed_official 340:28d1f895c6fe 1264
mbed_official 340:28d1f895c6fe 1265 /** @brief Macro to get the USB clock source.
mbed_official 340:28d1f895c6fe 1266 * @retval The clock source can be one of the following values:
mbed_official 340:28d1f895c6fe 1267 * @arg RCC_USBCLKSOURCE_HSI48: HSI48 selected as USB clock
mbed_official 340:28d1f895c6fe 1268 * @arg RCC_USBCLKSOURCE_PLLCLK: PLL Clock selected as USB clock
mbed_official 340:28d1f895c6fe 1269 */
mbed_official 340:28d1f895c6fe 1270 #define __HAL_RCC_GET_USB_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_USBSW)))
mbed_official 340:28d1f895c6fe 1271
mbed_official 340:28d1f895c6fe 1272 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 1273 /* STM32F072xB || STM32F078xx */
mbed_official 340:28d1f895c6fe 1274
mbed_official 340:28d1f895c6fe 1275 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 1276 defined(STM32F051x8) || defined(STM32F058xx) || \
mbed_official 340:28d1f895c6fe 1277 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1278 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1279
mbed_official 340:28d1f895c6fe 1280 /** @brief Macro to configure the CEC clock.
mbed_official 340:28d1f895c6fe 1281 * @param __CECCLKSource__: specifies the CEC clock source.
mbed_official 340:28d1f895c6fe 1282 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 1283 * @arg RCC_CECCLKSOURCE_HSI: HSI selected as CEC clock
mbed_official 340:28d1f895c6fe 1284 * @arg RCC_CECCLKSOURCE_LSE: LSE selected as CEC clock
mbed_official 340:28d1f895c6fe 1285 */
mbed_official 340:28d1f895c6fe 1286 #define __HAL_RCC_CEC_CONFIG(__CECCLKSource__) \
mbed_official 340:28d1f895c6fe 1287 MODIFY_REG(RCC->CFGR3, RCC_CFGR3_CECSW, (uint32_t)(__CECCLKSource__))
mbed_official 340:28d1f895c6fe 1288
mbed_official 340:28d1f895c6fe 1289 /** @brief Macro to get the HDMI CEC clock source.
mbed_official 340:28d1f895c6fe 1290 * @retval The clock source can be one of the following values:
mbed_official 340:28d1f895c6fe 1291 * @arg RCC_CECCLKSOURCE_HSI: HSI selected as CEC clock
mbed_official 340:28d1f895c6fe 1292 * @arg RCC_CECCLKSOURCE_LSE: LSE selected as CEC clock
mbed_official 340:28d1f895c6fe 1293 */
mbed_official 340:28d1f895c6fe 1294 #define __HAL_RCC_GET_CEC_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_CECSW)))
mbed_official 340:28d1f895c6fe 1295
mbed_official 340:28d1f895c6fe 1296 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 1297 /* STM32F051x8 || STM32F058xx || */
mbed_official 340:28d1f895c6fe 1298 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1299 /* STM32F091xC || defined(STM32F098xx) */
mbed_official 340:28d1f895c6fe 1300
mbed_official 340:28d1f895c6fe 1301 #if defined(STM32F030x6) || defined(STM32F031x6) || defined(STM32F038xx) || \
mbed_official 340:28d1f895c6fe 1302 defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 1303 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1304 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1305
mbed_official 340:28d1f895c6fe 1306 /** @brief Macro to configure the MCO clock.
mbed_official 340:28d1f895c6fe 1307 * @param __MCOCLKSource__: specifies the MCO clock source.
mbed_official 340:28d1f895c6fe 1308 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 1309 * @arg RCC_MCOSOURCE_HSI: HSI selected as MCO clock
mbed_official 340:28d1f895c6fe 1310 * @arg RCC_MCOSOURCE_HSE: HSE selected as MCO clock
mbed_official 340:28d1f895c6fe 1311 * @arg RCC_MCOSOURCE_LSI: LSI selected as MCO clock
mbed_official 340:28d1f895c6fe 1312 * @arg RCC_MCOSOURCE_LSE: LSE selected as MCO clock
mbed_official 340:28d1f895c6fe 1313 * @arg RCC_MCOSOURCE_PLLCLK_NODIV: PLLCLK selected as MCO clock
mbed_official 340:28d1f895c6fe 1314 * @arg RCC_MCOSOURCE_PLLCLK_DIV2: PLLCLK Divided by 2 selected as MCO clock
mbed_official 340:28d1f895c6fe 1315 * @arg RCC_MCOSOURCE_SYSCLK: System Clock selected as MCO clock
mbed_official 340:28d1f895c6fe 1316 * @arg RCC_MCOSOURCE_HSI14: HSI14 selected as MCO clock
mbed_official 340:28d1f895c6fe 1317 * @arg RCC_MCOSOURCE_HSI48: HSI48 selected as MCO clock
mbed_official 340:28d1f895c6fe 1318 * @param __MCODiv__: specifies the MCO clock prescaler.
mbed_official 340:28d1f895c6fe 1319 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 1320 * @arg RCC_MCO_DIV1: MCO clock source is divided by 1
mbed_official 340:28d1f895c6fe 1321 * @arg RCC_MCO_DIV2: MCO clock source is divided by 2
mbed_official 340:28d1f895c6fe 1322 * @arg RCC_MCO_DIV4: MCO clock source is divided by 4
mbed_official 340:28d1f895c6fe 1323 * @arg RCC_MCO_DIV8: MCO clock source is divided by 8
mbed_official 340:28d1f895c6fe 1324 * @arg RCC_MCO_DIV16: MCO clock source is divided by 16
mbed_official 340:28d1f895c6fe 1325 * @arg RCC_MCO_DIV32: MCO clock source is divided by 32
mbed_official 340:28d1f895c6fe 1326 * @arg RCC_MCO_DIV64: MCO clock source is divided by 64
mbed_official 340:28d1f895c6fe 1327 * @arg RCC_MCO_DIV128: MCO clock source is divided by 128
mbed_official 340:28d1f895c6fe 1328 */
mbed_official 340:28d1f895c6fe 1329 #define __HAL_RCC_MCO_CONFIG(__MCOCLKSource__, __MCODiv__) \
mbed_official 340:28d1f895c6fe 1330 MODIFY_REG(RCC->CFGR, (RCC_CFGR_MCO | RCC_CFGR_MCOPRE), ((__MCOCLKSource__) | (__MCODiv__)))
mbed_official 340:28d1f895c6fe 1331 #else
mbed_official 340:28d1f895c6fe 1332
mbed_official 340:28d1f895c6fe 1333 /** @brief Macro to configure the MCO clock.
mbed_official 340:28d1f895c6fe 1334 * @param __MCOCLKSource__: specifies the MCO clock source.
mbed_official 340:28d1f895c6fe 1335 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 1336 * @arg RCC_MCOSOURCE_HSI: HSI selected as MCO clock
mbed_official 340:28d1f895c6fe 1337 * @arg RCC_MCOSOURCE_HSE: HSE selected as MCO clock
mbed_official 340:28d1f895c6fe 1338 * @arg RCC_MCOSOURCE_LSI: LSI selected as MCO clock
mbed_official 340:28d1f895c6fe 1339 * @arg RCC_MCOSOURCE_LSE: LSE selected as MCO clock
mbed_official 340:28d1f895c6fe 1340 * @arg RCC_MCOSOURCE_PLLCLK_DIV2: PLLCLK Divided by 2 selected as MCO clock
mbed_official 340:28d1f895c6fe 1341 * @arg RCC_MCOSOURCE_SYSCLK: System Clock selected as MCO clock
mbed_official 340:28d1f895c6fe 1342 * @arg RCC_MCOSOURCE_HSI14: HSI14 selected as MCO clock
mbed_official 340:28d1f895c6fe 1343 * @arg RCC_MCOSOURCE_HSI48: HSI48 selected as MCO clock
mbed_official 340:28d1f895c6fe 1344 * @param __MCODiv__: specifies the MCO clock prescaler.
mbed_official 340:28d1f895c6fe 1345 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 1346 * @arg RCC_MCO_NODIV: No division applied on MCO clock source
mbed_official 340:28d1f895c6fe 1347 */
mbed_official 340:28d1f895c6fe 1348 #define __HAL_RCC_MCO_CONFIG(__MCOCLKSource__, __MCODiv__) \
mbed_official 340:28d1f895c6fe 1349 MODIFY_REG(RCC->CFGR, RCC_CFGR_MCO, __MCOCLKSource__)
mbed_official 340:28d1f895c6fe 1350
mbed_official 340:28d1f895c6fe 1351 #endif /* STM32F030x6 || STM32F031x6 || STM32F038xx || */
mbed_official 340:28d1f895c6fe 1352 /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 1353 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1354 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1355
mbed_official 340:28d1f895c6fe 1356 #if defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1357 /** @brief Macro to configure the USART3 clock (USART3CLK).
mbed_official 340:28d1f895c6fe 1358 * @param __USART3CLKSource__: specifies the USART3 clock source.
mbed_official 340:28d1f895c6fe 1359 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 1360 * @arg RCC_USART3CLKSOURCE_PCLK1: PCLK1 selected as USART3 clock
mbed_official 340:28d1f895c6fe 1361 * @arg RCC_USART3CLKSOURCE_HSI: HSI selected as USART3 clock
mbed_official 340:28d1f895c6fe 1362 * @arg RCC_USART3CLKSOURCE_SYSCLK: System Clock selected as USART3 clock
mbed_official 340:28d1f895c6fe 1363 * @arg RCC_USART3CLKSOURCE_LSE: LSE selected as USART3 clock
mbed_official 340:28d1f895c6fe 1364 */
mbed_official 340:28d1f895c6fe 1365 #define __HAL_RCC_USART3_CONFIG(__USART3CLKSource__) \
mbed_official 340:28d1f895c6fe 1366 MODIFY_REG(RCC->CFGR3, RCC_CFGR3_USART3SW, (uint32_t)(__USART3CLKSource__))
mbed_official 340:28d1f895c6fe 1367
mbed_official 340:28d1f895c6fe 1368 /** @brief Macro to get the USART3 clock source.
mbed_official 340:28d1f895c6fe 1369 * @retval The clock source can be one of the following values:
mbed_official 340:28d1f895c6fe 1370 * @arg RCC_USART3CLKSOURCE_PCLK1: PCLK1 selected as USART3 clock
mbed_official 340:28d1f895c6fe 1371 * @arg RCC_USART3CLKSOURCE_HSI: HSI selected as USART3 clock
mbed_official 340:28d1f895c6fe 1372 * @arg RCC_USART3CLKSOURCE_SYSCLK: System Clock selected as USART3 clock
mbed_official 340:28d1f895c6fe 1373 * @arg RCC_USART3CLKSOURCE_LSE: LSE selected as USART3 clock
mbed_official 340:28d1f895c6fe 1374 */
mbed_official 340:28d1f895c6fe 1375 #define __HAL_RCC_GET_USART3_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR3, RCC_CFGR3_USART3SW)))
mbed_official 340:28d1f895c6fe 1376
mbed_official 340:28d1f895c6fe 1377 #endif /*STM32F091xC || STM32F098xx*/
mbed_official 340:28d1f895c6fe 1378 /**
mbed_official 340:28d1f895c6fe 1379 * @}
mbed_official 340:28d1f895c6fe 1380 */
mbed_official 340:28d1f895c6fe 1381
mbed_official 340:28d1f895c6fe 1382 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 1383 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1384 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1385
mbed_official 340:28d1f895c6fe 1386 /** @defgroup RCCEx_IT_And_Flag RCCEx IT and Flag
mbed_official 340:28d1f895c6fe 1387 * @{
mbed_official 340:28d1f895c6fe 1388 */
mbed_official 340:28d1f895c6fe 1389 /* Interrupt & Flag management */
mbed_official 340:28d1f895c6fe 1390
mbed_official 340:28d1f895c6fe 1391 /**
mbed_official 340:28d1f895c6fe 1392 * @brief Enables the specified CRS interrupts.
mbed_official 340:28d1f895c6fe 1393 * @param __INTERRUPT__: specifies the CRS interrupt sources to be enabled.
mbed_official 340:28d1f895c6fe 1394 * This parameter can be any combination of the following values:
mbed_official 340:28d1f895c6fe 1395 * @arg RCC_CRS_IT_SYNCOK
mbed_official 340:28d1f895c6fe 1396 * @arg RCC_CRS_IT_SYNCWARN
mbed_official 340:28d1f895c6fe 1397 * @arg RCC_CRS_IT_ERR
mbed_official 340:28d1f895c6fe 1398 * @arg RCC_CRS_IT_ESYNC
mbed_official 340:28d1f895c6fe 1399 * @retval None
mbed_official 340:28d1f895c6fe 1400 */
mbed_official 340:28d1f895c6fe 1401 #define __HAL_RCC_CRS_ENABLE_IT(__INTERRUPT__) (CRS->CR |= (__INTERRUPT__))
mbed_official 340:28d1f895c6fe 1402
mbed_official 340:28d1f895c6fe 1403 /**
mbed_official 340:28d1f895c6fe 1404 * @brief Disables the specified CRS interrupts.
mbed_official 340:28d1f895c6fe 1405 * @param __INTERRUPT__: specifies the CRS interrupt sources to be disabled.
mbed_official 340:28d1f895c6fe 1406 * This parameter can be any combination of the following values:
mbed_official 340:28d1f895c6fe 1407 * @arg RCC_CRS_IT_SYNCOK
mbed_official 340:28d1f895c6fe 1408 * @arg RCC_CRS_IT_SYNCWARN
mbed_official 340:28d1f895c6fe 1409 * @arg RCC_CRS_IT_ERR
mbed_official 340:28d1f895c6fe 1410 * @arg RCC_CRS_IT_ESYNC
mbed_official 340:28d1f895c6fe 1411 * @retval None
mbed_official 340:28d1f895c6fe 1412 */
mbed_official 340:28d1f895c6fe 1413 #define __HAL_RCC_CRS_DISABLE_IT(__INTERRUPT__) (CRS->CR &= ~(__INTERRUPT__))
mbed_official 340:28d1f895c6fe 1414
mbed_official 340:28d1f895c6fe 1415 /** @brief Check the CRS's interrupt has occurred or not.
mbed_official 340:28d1f895c6fe 1416 * @param __INTERRUPT__: specifies the CRS interrupt source to check.
mbed_official 340:28d1f895c6fe 1417 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 1418 * @arg RCC_CRS_IT_SYNCOK
mbed_official 340:28d1f895c6fe 1419 * @arg RCC_CRS_IT_SYNCWARN
mbed_official 340:28d1f895c6fe 1420 * @arg RCC_CRS_IT_ERR
mbed_official 340:28d1f895c6fe 1421 * @arg RCC_CRS_IT_ESYNC
mbed_official 340:28d1f895c6fe 1422 * @retval The new state of __INTERRUPT__ (SET or RESET).
mbed_official 340:28d1f895c6fe 1423 */
mbed_official 340:28d1f895c6fe 1424 #define __HAL_RCC_CRS_GET_IT_SOURCE(__INTERRUPT__) ((CRS->CR & (__INTERRUPT__))? SET : RESET)
mbed_official 340:28d1f895c6fe 1425
mbed_official 340:28d1f895c6fe 1426 /** @brief Clear the CRS's interrupt pending bits
mbed_official 340:28d1f895c6fe 1427 * bits to clear the selected interrupt pending bits.
mbed_official 340:28d1f895c6fe 1428 * @param __INTERRUPT__: specifies the interrupt pending bit to clear.
mbed_official 340:28d1f895c6fe 1429 * This parameter can be any combination of the following values:
mbed_official 340:28d1f895c6fe 1430 * @arg RCC_CRS_IT_SYNCOK
mbed_official 340:28d1f895c6fe 1431 * @arg RCC_CRS_IT_SYNCWARN
mbed_official 340:28d1f895c6fe 1432 * @arg RCC_CRS_IT_ERR
mbed_official 340:28d1f895c6fe 1433 * @arg RCC_CRS_IT_ESYNC
mbed_official 340:28d1f895c6fe 1434 * @arg RCC_CRS_IT_TRIMOVF
mbed_official 340:28d1f895c6fe 1435 * @arg RCC_CRS_IT_SYNCERR
mbed_official 340:28d1f895c6fe 1436 * @arg RCC_CRS_IT_SYNCMISS
mbed_official 340:28d1f895c6fe 1437 */
mbed_official 340:28d1f895c6fe 1438 /* CRS IT Error Mask */
mbed_official 340:28d1f895c6fe 1439 #define RCC_CRS_IT_ERROR_MASK ((uint32_t)(RCC_CRS_IT_TRIMOVF | RCC_CRS_IT_SYNCERR | RCC_CRS_IT_SYNCMISS))
mbed_official 340:28d1f895c6fe 1440
mbed_official 340:28d1f895c6fe 1441 #define __HAL_RCC_CRS_CLEAR_IT(__INTERRUPT__) ((((__INTERRUPT__) & RCC_CRS_IT_ERROR_MASK)!= 0) ? (CRS->ICR |= CRS_ICR_ERRC) : \
mbed_official 340:28d1f895c6fe 1442 (CRS->ICR |= (__INTERRUPT__)))
mbed_official 340:28d1f895c6fe 1443
mbed_official 340:28d1f895c6fe 1444 /**
mbed_official 340:28d1f895c6fe 1445 * @brief Checks whether the specified CRS flag is set or not.
mbed_official 340:28d1f895c6fe 1446 * @param _FLAG_: specifies the flag to check.
mbed_official 340:28d1f895c6fe 1447 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 1448 * @arg RCC_CRS_FLAG_SYNCOK
mbed_official 340:28d1f895c6fe 1449 * @arg RCC_CRS_FLAG_SYNCWARN
mbed_official 340:28d1f895c6fe 1450 * @arg RCC_CRS_FLAG_ERR
mbed_official 340:28d1f895c6fe 1451 * @arg RCC_CRS_FLAG_ESYNC
mbed_official 340:28d1f895c6fe 1452 * @arg RCC_CRS_FLAG_TRIMOVF
mbed_official 340:28d1f895c6fe 1453 * @arg RCC_CRS_FLAG_SYNCERR
mbed_official 340:28d1f895c6fe 1454 * @arg RCC_CRS_FLAG_SYNCMISS
mbed_official 340:28d1f895c6fe 1455 * @retval The new state of _FLAG_ (TRUE or FALSE).
mbed_official 340:28d1f895c6fe 1456 */
mbed_official 340:28d1f895c6fe 1457 #define __HAL_RCC_CRS_GET_FLAG(_FLAG_) ((CRS->ISR & (_FLAG_)) == (_FLAG_))
mbed_official 340:28d1f895c6fe 1458
mbed_official 340:28d1f895c6fe 1459 /**
mbed_official 340:28d1f895c6fe 1460 * @brief Clears the CRS specified FLAG.
mbed_official 340:28d1f895c6fe 1461 * @param _FLAG_: specifies the flag to clear.
mbed_official 340:28d1f895c6fe 1462 * This parameter can be one of the following values:
mbed_official 340:28d1f895c6fe 1463 * @arg RCC_CRS_FLAG_SYNCOK
mbed_official 340:28d1f895c6fe 1464 * @arg RCC_CRS_FLAG_SYNCWARN
mbed_official 340:28d1f895c6fe 1465 * @arg RCC_CRS_FLAG_ERR
mbed_official 340:28d1f895c6fe 1466 * @arg RCC_CRS_FLAG_ESYNC
mbed_official 340:28d1f895c6fe 1467 * @arg RCC_CRS_FLAG_TRIMOVF
mbed_official 340:28d1f895c6fe 1468 * @arg RCC_CRS_FLAG_SYNCERR
mbed_official 340:28d1f895c6fe 1469 * @arg RCC_CRS_FLAG_SYNCMISS
mbed_official 340:28d1f895c6fe 1470 * @retval None
mbed_official 340:28d1f895c6fe 1471 */
mbed_official 340:28d1f895c6fe 1472
mbed_official 340:28d1f895c6fe 1473 /* CRS Flag Error Mask */
mbed_official 340:28d1f895c6fe 1474 #define RCC_CRS_FLAG_ERROR_MASK ((uint32_t)(RCC_CRS_FLAG_TRIMOVF | RCC_CRS_FLAG_SYNCERR | RCC_CRS_FLAG_SYNCMISS))
mbed_official 340:28d1f895c6fe 1475
mbed_official 340:28d1f895c6fe 1476 #define __HAL_RCC_CRS_CLEAR_FLAG(__FLAG__) ((((__FLAG__) & RCC_CRS_FLAG_ERROR_MASK)!= 0) ? (CRS->ICR |= CRS_ICR_ERRC) : \
mbed_official 340:28d1f895c6fe 1477 (CRS->ICR |= (__FLAG__)))
mbed_official 340:28d1f895c6fe 1478
mbed_official 340:28d1f895c6fe 1479 /**
mbed_official 340:28d1f895c6fe 1480 * @}
mbed_official 340:28d1f895c6fe 1481 */
mbed_official 340:28d1f895c6fe 1482
mbed_official 340:28d1f895c6fe 1483 /** @defgroup RCCEx_CRS_Extended_Features RCCEx CRS Extended Features
mbed_official 340:28d1f895c6fe 1484 * @{
mbed_official 340:28d1f895c6fe 1485 */
mbed_official 340:28d1f895c6fe 1486 /**
mbed_official 340:28d1f895c6fe 1487 * @brief Enables the oscillator clock for frequency error counter.
mbed_official 340:28d1f895c6fe 1488 * @note when the CEN bit is set the CRS_CFGR register becomes write-protected.
mbed_official 340:28d1f895c6fe 1489 * @retval None
mbed_official 340:28d1f895c6fe 1490 */
mbed_official 340:28d1f895c6fe 1491 #define __HAL_RCC_CRS_ENABLE_FREQ_ERROR_COUNTER() (CRS->CR |= CRS_CR_CEN)
mbed_official 340:28d1f895c6fe 1492
mbed_official 340:28d1f895c6fe 1493 /**
mbed_official 340:28d1f895c6fe 1494 * @brief Disables the oscillator clock for frequency error counter.
mbed_official 340:28d1f895c6fe 1495 * @retval None
mbed_official 340:28d1f895c6fe 1496 */
mbed_official 340:28d1f895c6fe 1497 #define __HAL_RCC_CRS_DISABLE_FREQ_ERROR_COUNTER() (CRS->CR &= ~CRS_CR_CEN)
mbed_official 340:28d1f895c6fe 1498
mbed_official 340:28d1f895c6fe 1499 /**
mbed_official 340:28d1f895c6fe 1500 * @brief Enables the automatic hardware adjustement of TRIM bits.
mbed_official 340:28d1f895c6fe 1501 * @note When the AUTOTRIMEN bit is set the CRS_CFGR register becomes write-protected.
mbed_official 340:28d1f895c6fe 1502 * @retval None
mbed_official 340:28d1f895c6fe 1503 */
mbed_official 340:28d1f895c6fe 1504 #define __HAL_RCC_CRS_ENABLE_AUTOMATIC_CALIB() (CRS->CR |= CRS_CR_AUTOTRIMEN)
mbed_official 340:28d1f895c6fe 1505
mbed_official 340:28d1f895c6fe 1506 /**
mbed_official 340:28d1f895c6fe 1507 * @brief Enables or disables the automatic hardware adjustement of TRIM bits.
mbed_official 340:28d1f895c6fe 1508 * @retval None
mbed_official 340:28d1f895c6fe 1509 */
mbed_official 340:28d1f895c6fe 1510 #define __HAL_RCC_CRS_DISABLE_AUTOMATIC_CALIB() (CRS->CR &= ~CRS_CR_AUTOTRIMEN)
mbed_official 340:28d1f895c6fe 1511
mbed_official 340:28d1f895c6fe 1512 /**
mbed_official 340:28d1f895c6fe 1513 * @brief Macro to calculate reload value to be set in CRS register according to target and sync frequencies
mbed_official 340:28d1f895c6fe 1514 * @note The RELOAD value should be selected according to the ratio between the target frequency and the frequency
mbed_official 340:28d1f895c6fe 1515 * of the synchronization source after prescaling. It is then decreased by one in order to
mbed_official 340:28d1f895c6fe 1516 * reach the expected synchronization on the zero value. The formula is the following:
mbed_official 340:28d1f895c6fe 1517 * RELOAD = (fTARGET / fSYNC) -1
mbed_official 340:28d1f895c6fe 1518 * @param _FTARGET_ Target frequency (value in Hz)
mbed_official 340:28d1f895c6fe 1519 * @param _FSYNC_ Synchronization signal frequency (value in Hz)
mbed_official 340:28d1f895c6fe 1520 * @retval None
mbed_official 340:28d1f895c6fe 1521 */
mbed_official 340:28d1f895c6fe 1522 #define __HAL_RCC_CRS_CALCULATE_RELOADVALUE(_FTARGET_, _FSYNC_) (((_FTARGET_) / (_FSYNC_)) - 1)
mbed_official 340:28d1f895c6fe 1523
mbed_official 340:28d1f895c6fe 1524 /**
mbed_official 340:28d1f895c6fe 1525 * @}
mbed_official 340:28d1f895c6fe 1526 */
mbed_official 340:28d1f895c6fe 1527
mbed_official 340:28d1f895c6fe 1528 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 1529 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1530 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1531
mbed_official 340:28d1f895c6fe 1532 /**
mbed_official 340:28d1f895c6fe 1533 * @}
mbed_official 340:28d1f895c6fe 1534 */
mbed_official 340:28d1f895c6fe 1535
mbed_official 340:28d1f895c6fe 1536 /* Exported functions --------------------------------------------------------*/
mbed_official 340:28d1f895c6fe 1537 /** @addtogroup RCCEx_Exported_Functions
mbed_official 340:28d1f895c6fe 1538 * @{
mbed_official 340:28d1f895c6fe 1539 */
mbed_official 340:28d1f895c6fe 1540
mbed_official 340:28d1f895c6fe 1541 /** @addtogroup RCCEx_Exported_Functions_Group1
mbed_official 340:28d1f895c6fe 1542 * @{
mbed_official 340:28d1f895c6fe 1543 */
mbed_official 340:28d1f895c6fe 1544
mbed_official 340:28d1f895c6fe 1545 HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit);
mbed_official 340:28d1f895c6fe 1546 void HAL_RCCEx_GetPeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkInit);
mbed_official 340:28d1f895c6fe 1547
mbed_official 340:28d1f895c6fe 1548 #if defined(STM32F042x6) || defined(STM32F048xx) || \
mbed_official 340:28d1f895c6fe 1549 defined(STM32F071xB) || defined(STM32F072xB) || defined(STM32F078xx) || \
mbed_official 340:28d1f895c6fe 1550 defined(STM32F091xC) || defined(STM32F098xx)
mbed_official 340:28d1f895c6fe 1551 void HAL_RCCEx_CRSConfig(RCC_CRSInitTypeDef *pInit);
mbed_official 340:28d1f895c6fe 1552 void HAL_RCCEx_CRSSoftwareSynchronizationGenerate(void);
mbed_official 340:28d1f895c6fe 1553 void HAL_RCCEx_CRSGetSynchronizationInfo(RCC_CRSSynchroInfoTypeDef *pSynchroInfo);
mbed_official 340:28d1f895c6fe 1554 RCC_CRSStatusTypeDef HAL_RCCEx_CRSWaitSynchronization(uint32_t Timeout);
mbed_official 340:28d1f895c6fe 1555 #endif /* STM32F042x6 || STM32F048xx || */
mbed_official 340:28d1f895c6fe 1556 /* STM32F071xB || STM32F072xB || STM32F078xx || */
mbed_official 340:28d1f895c6fe 1557 /* STM32F091xC || STM32F098xx */
mbed_official 340:28d1f895c6fe 1558
mbed_official 340:28d1f895c6fe 1559
mbed_official 340:28d1f895c6fe 1560 /**
mbed_official 340:28d1f895c6fe 1561 * @}
mbed_official 340:28d1f895c6fe 1562 */
mbed_official 340:28d1f895c6fe 1563
mbed_official 340:28d1f895c6fe 1564 /**
mbed_official 340:28d1f895c6fe 1565 * @}
mbed_official 340:28d1f895c6fe 1566 */
mbed_official 340:28d1f895c6fe 1567
mbed_official 340:28d1f895c6fe 1568 /**
mbed_official 340:28d1f895c6fe 1569 * @}
mbed_official 340:28d1f895c6fe 1570 */
mbed_official 340:28d1f895c6fe 1571
mbed_official 340:28d1f895c6fe 1572 /**
mbed_official 340:28d1f895c6fe 1573 * @}
mbed_official 340:28d1f895c6fe 1574 */
mbed_official 340:28d1f895c6fe 1575
mbed_official 340:28d1f895c6fe 1576 #ifdef __cplusplus
mbed_official 340:28d1f895c6fe 1577 }
mbed_official 340:28d1f895c6fe 1578 #endif
mbed_official 340:28d1f895c6fe 1579
mbed_official 340:28d1f895c6fe 1580 #endif /* __STM32F0xx_HAL_RCC_EX_H */
mbed_official 340:28d1f895c6fe 1581
mbed_official 340:28d1f895c6fe 1582 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/