mbed library sources

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Wed Feb 26 09:45:12 2014 +0000
Revision:
106:ced8cbb51063
Parent:
76:aeb1df146756
Synchronized with git revision 4222735eff5868389433f0e9271976b39c8115cd

Full URL: https://github.com/mbedmicro/mbed/commit/4222735eff5868389433f0e9271976b39c8115cd/

[NUCLEO_xxx] Update STM32CubeF4 driver V1.0.0 + update license

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 76:aeb1df146756 1 /**
mbed_official 76:aeb1df146756 2 ******************************************************************************
mbed_official 76:aeb1df146756 3 * @file stm32f0xx_crs.h
mbed_official 76:aeb1df146756 4 * @author MCD Application Team
mbed_official 76:aeb1df146756 5 * @version V1.3.0
mbed_official 76:aeb1df146756 6 * @date 16-January-2014
mbed_official 76:aeb1df146756 7 * @brief This file contains all the functions prototypes for the CRS firmware
mbed_official 76:aeb1df146756 8 * library, applicable only for STM32F042 and STM32F072 devices.
mbed_official 76:aeb1df146756 9 ******************************************************************************
mbed_official 76:aeb1df146756 10 * @attention
mbed_official 76:aeb1df146756 11 *
mbed_official 106:ced8cbb51063 12 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 76:aeb1df146756 13 *
mbed_official 106:ced8cbb51063 14 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 106:ced8cbb51063 15 * are permitted provided that the following conditions are met:
mbed_official 106:ced8cbb51063 16 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 106:ced8cbb51063 17 * this list of conditions and the following disclaimer.
mbed_official 106:ced8cbb51063 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 106:ced8cbb51063 19 * this list of conditions and the following disclaimer in the documentation
mbed_official 106:ced8cbb51063 20 * and/or other materials provided with the distribution.
mbed_official 106:ced8cbb51063 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 106:ced8cbb51063 22 * may be used to endorse or promote products derived from this software
mbed_official 106:ced8cbb51063 23 * without specific prior written permission.
mbed_official 76:aeb1df146756 24 *
mbed_official 106:ced8cbb51063 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 106:ced8cbb51063 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 106:ced8cbb51063 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 106:ced8cbb51063 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 106:ced8cbb51063 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 106:ced8cbb51063 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 106:ced8cbb51063 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 106:ced8cbb51063 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 106:ced8cbb51063 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 106:ced8cbb51063 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 76:aeb1df146756 35 *
mbed_official 76:aeb1df146756 36 ******************************************************************************
mbed_official 76:aeb1df146756 37 */
mbed_official 76:aeb1df146756 38
mbed_official 76:aeb1df146756 39 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 76:aeb1df146756 40 #ifndef __STM32F0XX_CRS_H
mbed_official 76:aeb1df146756 41 #define __STM32F0XX_CRS_H
mbed_official 76:aeb1df146756 42
mbed_official 76:aeb1df146756 43 #ifdef __cplusplus
mbed_official 76:aeb1df146756 44 extern "C" {
mbed_official 76:aeb1df146756 45 #endif
mbed_official 76:aeb1df146756 46
mbed_official 76:aeb1df146756 47 /*!< Includes ----------------------------------------------------------------*/
mbed_official 76:aeb1df146756 48 #include "stm32f0xx.h"
mbed_official 76:aeb1df146756 49
mbed_official 76:aeb1df146756 50 /** @addtogroup STM32F0xx_StdPeriph_Driver
mbed_official 76:aeb1df146756 51 * @{
mbed_official 76:aeb1df146756 52 */
mbed_official 76:aeb1df146756 53
mbed_official 76:aeb1df146756 54 /** @addtogroup CRS
mbed_official 76:aeb1df146756 55 * @{
mbed_official 76:aeb1df146756 56 */
mbed_official 76:aeb1df146756 57
mbed_official 76:aeb1df146756 58 /* Exported types ------------------------------------------------------------*/
mbed_official 76:aeb1df146756 59 /* Exported constants --------------------------------------------------------*/
mbed_official 76:aeb1df146756 60
mbed_official 76:aeb1df146756 61 /** @defgroup CRS_Interrupt_Sources
mbed_official 76:aeb1df146756 62 * @{
mbed_official 76:aeb1df146756 63 */
mbed_official 76:aeb1df146756 64 #define CRS_IT_SYNCOK CRS_ISR_SYNCOKF /*!< SYNC event OK */
mbed_official 76:aeb1df146756 65 #define CRS_IT_SYNCWARN CRS_ISR_SYNCWARNF /*!< SYNC warning */
mbed_official 76:aeb1df146756 66 #define CRS_IT_ERR CRS_ISR_ERRF /*!< error */
mbed_official 76:aeb1df146756 67 #define CRS_IT_ESYNC CRS_ISR_ESYNCF /*!< Expected SYNC */
mbed_official 76:aeb1df146756 68 #define CRS_IT_TRIMOVF CRS_ISR_TRIMOVF /*!< Trimming overflow or underflow */
mbed_official 76:aeb1df146756 69 #define CRS_IT_SYNCERR CRS_ISR_SYNCERR /*!< SYNC error */
mbed_official 76:aeb1df146756 70 #define CRS_IT_SYNCMISS CRS_ISR_SYNCMISS /*!< SYNC missed*/
mbed_official 76:aeb1df146756 71
mbed_official 76:aeb1df146756 72 #define IS_CRS_IT(IT) (((IT) == CRS_IT_SYNCOK) || ((IT) == CRS_IT_SYNCWARN) || \
mbed_official 76:aeb1df146756 73 ((IT) == CRS_IT_ERR) || ((IT) == CRS_IT_ESYNC))
mbed_official 76:aeb1df146756 74
mbed_official 76:aeb1df146756 75 #define IS_CRS_GET_IT(IT) (((IT) == CRS_IT_SYNCOK) || ((IT) == CRS_IT_SYNCWARN) || \
mbed_official 76:aeb1df146756 76 ((IT) == CRS_IT_ERR) || ((IT) == CRS_IT_ESYNC) || \
mbed_official 76:aeb1df146756 77 ((IT) == CRS_IT_TRIMOVF) || ((IT) == CRS_IT_SYNCERR) || \
mbed_official 76:aeb1df146756 78 ((IT) == CRS_IT_SYNCMISS))
mbed_official 76:aeb1df146756 79
mbed_official 76:aeb1df146756 80 #define IS_CRS_CLEAR_IT(IT) ((IT) != 0x00)
mbed_official 76:aeb1df146756 81
mbed_official 76:aeb1df146756 82 /**
mbed_official 76:aeb1df146756 83 * @}
mbed_official 76:aeb1df146756 84 */
mbed_official 76:aeb1df146756 85
mbed_official 76:aeb1df146756 86 /** @defgroup CRS_Flags
mbed_official 76:aeb1df146756 87 * @{
mbed_official 76:aeb1df146756 88 */
mbed_official 76:aeb1df146756 89 #define CRS_FLAG_SYNCOK CRS_ISR_SYNCOKF /*!< SYNC event OK */
mbed_official 76:aeb1df146756 90 #define CRS_FLAG_SYNCWARN CRS_ISR_SYNCWARNF /*!< SYNC warning */
mbed_official 76:aeb1df146756 91 #define CRS_FLAG_ERR CRS_ISR_ERRF /*!< error */
mbed_official 76:aeb1df146756 92 #define CRS_FLAG_ESYNC CRS_ISR_ESYNCF /*!< Expected SYNC */
mbed_official 76:aeb1df146756 93 #define CRS_FLAG_TRIMOVF CRS_ISR_TRIMOVF /*!< Trimming overflow or underflow */
mbed_official 76:aeb1df146756 94 #define CRS_FLAG_SYNCERR CRS_ISR_SYNCERR /*!< SYNC error */
mbed_official 76:aeb1df146756 95 #define CRS_FLAG_SYNCMISS CRS_ISR_SYNCMISS /*!< SYNC missed*/
mbed_official 76:aeb1df146756 96
mbed_official 76:aeb1df146756 97 #define IS_CRS_FLAG(FLAG) (((FLAG) == CRS_FLAG_SYNCOK) || ((FLAG) == CRS_FLAG_SYNCWARN) || \
mbed_official 76:aeb1df146756 98 ((FLAG) == CRS_FLAG_ERR) || ((FLAG) == CRS_FLAG_ESYNC) || \
mbed_official 76:aeb1df146756 99 ((FLAG) == CRS_FLAG_TRIMOVF) || ((FLAG) == CRS_FLAG_SYNCERR) || \
mbed_official 76:aeb1df146756 100 ((FLAG) == CRS_FLAG_SYNCMISS))
mbed_official 76:aeb1df146756 101
mbed_official 76:aeb1df146756 102 /**
mbed_official 76:aeb1df146756 103 * @}
mbed_official 76:aeb1df146756 104 */
mbed_official 76:aeb1df146756 105
mbed_official 76:aeb1df146756 106 /** @defgroup CRS_Synchro_Source
mbed_official 76:aeb1df146756 107 * @{
mbed_official 76:aeb1df146756 108 */
mbed_official 76:aeb1df146756 109 #define CRS_SYNCSource_GPIO ((uint32_t)0x00) /*!< Synchro Signal soucre GPIO */
mbed_official 76:aeb1df146756 110 #define CRS_SYNCSource_LSE CRS_CFGR_SYNCSRC_0 /*!< Synchro Signal source LSE */
mbed_official 76:aeb1df146756 111 #define CRS_SYNCSource_USB CRS_CFGR_SYNCSRC_1 /*!< Synchro Signal source USB SOF */
mbed_official 76:aeb1df146756 112
mbed_official 76:aeb1df146756 113 #define IS_CRS_SYNC_SOURCE(SOURCE) (((SOURCE) == CRS_SYNCSource_GPIO) || \
mbed_official 76:aeb1df146756 114 ((SOURCE) == CRS_SYNCSource_LSE) ||\
mbed_official 76:aeb1df146756 115 ((SOURCE) == CRS_SYNCSource_USB))
mbed_official 76:aeb1df146756 116 /**
mbed_official 76:aeb1df146756 117 * @}
mbed_official 76:aeb1df146756 118 */
mbed_official 76:aeb1df146756 119
mbed_official 76:aeb1df146756 120 /** @defgroup CRS_SynchroDivider
mbed_official 76:aeb1df146756 121 * @{
mbed_official 76:aeb1df146756 122 */
mbed_official 76:aeb1df146756 123 #define CRS_SYNC_Div1 ((uint32_t)0x00) /*!< Synchro Signal not divided */
mbed_official 76:aeb1df146756 124 #define CRS_SYNC_Div2 CRS_CFGR_SYNCDIV_0 /*!< Synchro Signal divided by 2 */
mbed_official 76:aeb1df146756 125 #define CRS_SYNC_Div4 CRS_CFGR_SYNCDIV_1 /*!< Synchro Signal divided by 4 */
mbed_official 76:aeb1df146756 126 #define CRS_SYNC_Div8 (CRS_CFGR_SYNCDIV_1 | CRS_CFGR_SYNCDIV_0) /*!< Synchro Signal divided by 8 */
mbed_official 76:aeb1df146756 127 #define CRS_SYNC_Div16 CRS_CFGR_SYNCDIV_2 /*!< Synchro Signal divided by 16 */
mbed_official 76:aeb1df146756 128 #define CRS_SYNC_Div32 (CRS_CFGR_SYNCDIV_2 | CRS_CFGR_SYNCDIV_0) /*!< Synchro Signal divided by 32 */
mbed_official 76:aeb1df146756 129 #define CRS_SYNC_Div64 (CRS_CFGR_SYNCDIV_2 | CRS_CFGR_SYNCDIV_1) /*!< Synchro Signal divided by 64 */
mbed_official 76:aeb1df146756 130 #define CRS_SYNC_Div128 CRS_CFGR_SYNCDIV /*!< Synchro Signal divided by 128 */
mbed_official 76:aeb1df146756 131
mbed_official 76:aeb1df146756 132 #define IS_CRS_SYNC_DIV(DIV) (((DIV) == CRS_SYNC_Div1) || ((DIV) == CRS_SYNC_Div2) ||\
mbed_official 76:aeb1df146756 133 ((DIV) == CRS_SYNC_Div4) || ((DIV) == CRS_SYNC_Div8) || \
mbed_official 76:aeb1df146756 134 ((DIV) == CRS_SYNC_Div16) || ((DIV) == CRS_SYNC_Div32) || \
mbed_official 76:aeb1df146756 135 ((DIV) == CRS_SYNC_Div64) || ((DIV) == CRS_SYNC_Div128))
mbed_official 76:aeb1df146756 136 /**
mbed_official 76:aeb1df146756 137 * @}
mbed_official 76:aeb1df146756 138 */
mbed_official 76:aeb1df146756 139
mbed_official 76:aeb1df146756 140 /** @defgroup CRS_SynchroPolarity
mbed_official 76:aeb1df146756 141 * @{
mbed_official 76:aeb1df146756 142 */
mbed_official 76:aeb1df146756 143 #define CRS_SYNCPolarity_Rising ((uint32_t)0x00) /*!< Synchro Active on rising edge */
mbed_official 76:aeb1df146756 144 #define CRS_SYNCPolarity_Falling CRS_CFGR_SYNCPOL /*!< Synchro Active on falling edge */
mbed_official 76:aeb1df146756 145
mbed_official 76:aeb1df146756 146 #define IS_CRS_SYNC_POLARITY(POLARITY) (((POLARITY) == CRS_SYNCPolarity_Rising) || \
mbed_official 76:aeb1df146756 147 ((POLARITY) == CRS_SYNCPolarity_Falling))
mbed_official 76:aeb1df146756 148 /**
mbed_official 76:aeb1df146756 149 * @}
mbed_official 76:aeb1df146756 150 */
mbed_official 76:aeb1df146756 151
mbed_official 76:aeb1df146756 152
mbed_official 76:aeb1df146756 153
mbed_official 76:aeb1df146756 154 /* Exported macro ------------------------------------------------------------*/
mbed_official 76:aeb1df146756 155 /* Exported functions ------------------------------------------------------- */
mbed_official 76:aeb1df146756 156 /* Configuration of the CRS **********************************/
mbed_official 76:aeb1df146756 157 void CRS_DeInit(void);
mbed_official 76:aeb1df146756 158 void CRS_AdjustHSI48CalibrationValue(uint8_t CRS_HSI48CalibrationValue);
mbed_official 76:aeb1df146756 159 void CRS_FrequencyErrorCounterCmd(FunctionalState NewState);
mbed_official 76:aeb1df146756 160 void CRS_AutomaticCalibrationCmd(FunctionalState NewState);
mbed_official 76:aeb1df146756 161 void CRS_SoftwareSynchronizationGenerate(void);
mbed_official 76:aeb1df146756 162 void CRS_FrequencyErrorCounterReload(uint32_t CRS_ReloadValue);
mbed_official 76:aeb1df146756 163 void CRS_FrequencyErrorLimitConfig(uint8_t CRS_ErrorLimitValue);
mbed_official 76:aeb1df146756 164 void CRS_SynchronizationPrescalerConfig(uint32_t CRS_Prescaler);
mbed_official 76:aeb1df146756 165 void CRS_SynchronizationSourceConfig(uint32_t CRS_Source);
mbed_official 76:aeb1df146756 166 void CRS_SynchronizationPolarityConfig(uint32_t CRS_Polarity);
mbed_official 76:aeb1df146756 167 uint32_t CRS_GetReloadValue(void);
mbed_official 76:aeb1df146756 168 uint32_t CRS_GetHSI48CalibrationValue(void);
mbed_official 76:aeb1df146756 169 uint32_t CRS_GetFrequencyErrorValue(void);
mbed_official 76:aeb1df146756 170 uint32_t CRS_GetFrequencyErrorDirection(void);
mbed_official 76:aeb1df146756 171
mbed_official 76:aeb1df146756 172 /* Interrupts and flags management functions **********************************/
mbed_official 76:aeb1df146756 173 void CRS_ITConfig(uint32_t CRS_IT, FunctionalState NewState);
mbed_official 76:aeb1df146756 174 FlagStatus CRS_GetFlagStatus(uint32_t CRS_FLAG);
mbed_official 76:aeb1df146756 175 void CRS_ClearFlag(uint32_t CRS_FLAG);
mbed_official 76:aeb1df146756 176 ITStatus CRS_GetITStatus(uint32_t CRS_IT);
mbed_official 76:aeb1df146756 177 void CRS_ClearITPendingBit(uint32_t CRS_IT);
mbed_official 76:aeb1df146756 178
mbed_official 76:aeb1df146756 179 #ifdef __cplusplus
mbed_official 76:aeb1df146756 180 }
mbed_official 76:aeb1df146756 181 #endif
mbed_official 76:aeb1df146756 182
mbed_official 76:aeb1df146756 183 #endif /* __STM32F0XX_CRS_H */
mbed_official 76:aeb1df146756 184
mbed_official 76:aeb1df146756 185 /**
mbed_official 76:aeb1df146756 186 * @}
mbed_official 76:aeb1df146756 187 */
mbed_official 76:aeb1df146756 188
mbed_official 76:aeb1df146756 189 /**
mbed_official 76:aeb1df146756 190 * @}
mbed_official 76:aeb1df146756 191 */
mbed_official 76:aeb1df146756 192
mbed_official 76:aeb1df146756 193 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/