Subversion Repositories DashDisplay

Rev

Rev 2 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2 Rev 5
Line 1... Line 1...
1
/**
1
/**
2
  ******************************************************************************
2
  ******************************************************************************
3
  * @file    stm32f1xx_hal_rcc.h
3
  * @file    stm32f1xx_hal_rcc.h
4
  * @author  MCD Application Team
4
  * @author  MCD Application Team
5
  * @version V1.0.1
5
  * @version V1.0.4
6
  * @date    31-July-2015
6
  * @date    29-April-2016
7
  * @brief   Header file of RCC HAL module.
7
  * @brief   Header file of RCC HAL module.
8
  ******************************************************************************
8
  ******************************************************************************
9
  * @attention
9
  * @attention
10
  *
10
  *
11
  * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
11
  * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
12
  *
12
  *
13
  * Redistribution and use in source and binary forms, with or without modification,
13
  * Redistribution and use in source and binary forms, with or without modification,
14
  * are permitted provided that the following conditions are met:
14
  * are permitted provided that the following conditions are met:
15
  *   1. Redistributions of source code must retain the above copyright notice,
15
  *   1. Redistributions of source code must retain the above copyright notice,
16
  *      this list of conditions and the following disclaimer.
16
  *      this list of conditions and the following disclaimer.
Line 66... Line 66...
66
#define RCC_DBP_TIMEOUT_VALUE  ((uint32_t)100)       /* 100 ms */
66
#define RCC_DBP_TIMEOUT_VALUE  ((uint32_t)100)       /* 100 ms */
67
/* LSE state change timeout */
67
/* LSE state change timeout */
68
#define RCC_LSE_TIMEOUT_VALUE      LSE_STARTUP_TIMEOUT
68
#define RCC_LSE_TIMEOUT_VALUE      LSE_STARTUP_TIMEOUT
69
#define CLOCKSWITCH_TIMEOUT_VALUE  ((uint32_t)5000)  /* 5 s    */
69
#define CLOCKSWITCH_TIMEOUT_VALUE  ((uint32_t)5000)  /* 5 s    */
70
#define HSE_TIMEOUT_VALUE          HSE_STARTUP_TIMEOUT
70
#define HSE_TIMEOUT_VALUE          HSE_STARTUP_TIMEOUT
71
#define HSI_TIMEOUT_VALUE         ((uint32_t)100)    /* 100 ms */
71
#define HSI_TIMEOUT_VALUE         ((uint32_t)2)      /* 2 ms (minimum Tick + 1) */
72
#define LSI_TIMEOUT_VALUE         ((uint32_t)100)    /* 100 ms */
72
#define LSI_TIMEOUT_VALUE         ((uint32_t)2)      /* 2 ms (minimum Tick + 1) */
73
#define PLL_TIMEOUT_VALUE         ((uint32_t)100)    /* 100 ms */
73
#define PLL_TIMEOUT_VALUE         ((uint32_t)2)      /* 2 ms (minimum Tick + 1) */
74
#define LSI_VALUE                 ((uint32_t)40000)  /* 40kHz */
74
#define LSI_VALUE                 ((uint32_t)40000)  /* 40kHz */
75
 
-
 
76
/**
75
/**
77
  * @}
76
  * @}
78
  */
77
  */
79
 
78
 
80
/** @defgroup RCC_Register_Offset Register offsets
79
/** @defgroup RCC_Register_Offset Register offsets
Line 244... Line 243...
244
 
243
 
245
  uint32_t PLLMUL;        /*!< PLLMUL: Multiplication factor for PLL VCO input clock
244
  uint32_t PLLMUL;        /*!< PLLMUL: Multiplication factor for PLL VCO input clock
246
                              This parameter must be a value of @ref RCCEx_PLL_Multiplication_Factor */
245
                              This parameter must be a value of @ref RCCEx_PLL_Multiplication_Factor */
247
} RCC_PLLInitTypeDef;
246
} RCC_PLLInitTypeDef;
248
   
247
   
249
/**
248
/**
250
  * @brief  RCC System, AHB and APB busses clock configuration structure definition  
249
  * @brief  RCC System, AHB and APB busses clock configuration structure definition  
251
  */
250
  */
252
typedef struct
251
typedef struct
253
{
252
{
254
  uint32_t ClockType;             /*!< The clock to be configured.
253
  uint32_t ClockType;             /*!< The clock to be configured.
255
                                       This parameter can be a value of @ref RCC_System_Clock_Type */
254
                                       This parameter can be a value of @ref RCC_System_Clock_Type */
256
 
255
 
257
  uint32_t SYSCLKSource;          /*!< The clock source (SYSCLKS) used as system clock.
256
  uint32_t SYSCLKSource;          /*!< The clock source (SYSCLKS) used as system clock.
258
                                       This parameter can be a value of @ref RCC_System_Clock_Source */
257
                                       This parameter can be a value of @ref RCC_System_Clock_Source */
259
 
258
 
260
  uint32_t AHBCLKDivider;         /*!< The AHB clock (HCLK) divider. This clock is derived from the system clock (SYSCLK).
259
  uint32_t AHBCLKDivider;         /*!< The AHB clock (HCLK) divider. This clock is derived from the system clock (SYSCLK).
261
                                       This parameter can be a value of @ref RCC_AHB_Clock_Source */
260
                                       This parameter can be a value of @ref RCC_AHB_Clock_Source */
262
 
261
 
263
  uint32_t APB1CLKDivider;        /*!< The APB1 clock (PCLK1) divider. This clock is derived from the AHB clock (HCLK).
262
  uint32_t APB1CLKDivider;        /*!< The APB1 clock (PCLK1) divider. This clock is derived from the AHB clock (HCLK).
264
                                       This parameter can be a value of @ref RCC_APB1_APB2_Clock_Source */
263
                                       This parameter can be a value of @ref RCC_APB1_APB2_Clock_Source */
265
 
264
 
266
  uint32_t APB2CLKDivider;        /*!< The APB2 clock (PCLK2) divider. This clock is derived from the AHB clock (HCLK).
265
  uint32_t APB2CLKDivider;        /*!< The APB2 clock (PCLK2) divider. This clock is derived from the AHB clock (HCLK).
267
                                       This parameter can be a value of @ref RCC_APB1_APB2_Clock_Source */
266
                                       This parameter can be a value of @ref RCC_APB1_APB2_Clock_Source */
268
} RCC_ClkInitTypeDef;
267
} RCC_ClkInitTypeDef;
269
 
268
 
270
/**
269
/**
Line 321... Line 320...
321
  */
320
  */
322
 
321
 
323
/** @defgroup RCC_HSI_Config HSI Config
322
/** @defgroup RCC_HSI_Config HSI Config
324
  * @{
323
  * @{
325
  */
324
  */
326
#define RCC_HSI_OFF                      ((uint32_t)0x00000000)   /*!< HSI clock deactivation */
325
#define RCC_HSI_OFF                      ((uint32_t)0x00000000)           /*!< HSI clock deactivation */
327
#define RCC_HSI_ON                       RCC_CR_HSION             /*!< HSI clock activation */
326
#define RCC_HSI_ON                       RCC_CR_HSION                     /*!< HSI clock activation */
328
 
327
 
329
#define RCC_HSICALIBRATION_DEFAULT       ((uint32_t)0x10)         /* Default HSI calibration trimming value */
328
#define RCC_HSICALIBRATION_DEFAULT       ((uint32_t)0x10)         /* Default HSI calibration trimming value */
330
 
329
 
331
/**
330
/**
332
  * @}
331
  * @}
Line 419... Line 418...
419
 
418
 
420
/** @defgroup RCC_RTC_Clock_Source RTC Clock Source
419
/** @defgroup RCC_RTC_Clock_Source RTC Clock Source
421
  * @{
420
  * @{
422
  */
421
  */
423
#define RCC_RTCCLKSOURCE_NO_CLK          ((uint32_t)0x00000000)                 /*!< No clock */
422
#define RCC_RTCCLKSOURCE_NO_CLK          ((uint32_t)0x00000000)                 /*!< No clock */
424
#define RCC_RTCCLKSOURCE_LSE             RCC_BDCR_RTCSEL_LSE                    /*!< LSE oscillator clock used as RTC clock */
423
#define RCC_RTCCLKSOURCE_LSE             RCC_BDCR_RTCSEL_LSE                  /*!< LSE oscillator clock used as RTC clock */
425
#define RCC_RTCCLKSOURCE_LSI             RCC_BDCR_RTCSEL_LSI                    /*!< LSI oscillator clock used as RTC clock */
424
#define RCC_RTCCLKSOURCE_LSI             RCC_BDCR_RTCSEL_LSI                  /*!< LSI oscillator clock used as RTC clock */
426
#define RCC_RTCCLKSOURCE_HSE_DIV128      RCC_BDCR_RTCSEL_HSE                    /*!< HSE oscillator clock divided by 128 used as RTC clock */
425
#define RCC_RTCCLKSOURCE_HSE_DIV128      RCC_BDCR_RTCSEL_HSE                    /*!< HSE oscillator clock divided by 128 used as RTC clock */
427
/**
426
/**
428
  * @}
427
  * @}
429
  */
428
  */
430
 
429
 
Line 449... Line 448...
449
  */
448
  */
450
 
449
 
451
/** @defgroup RCC_Interrupt Interrupts
450
/** @defgroup RCC_Interrupt Interrupts
452
  * @{
451
  * @{
453
  */
452
  */
454
#define RCC_IT_LSIRDY                    ((uint8_t)RCC_CIR_LSIRDYF) /*!< LSI Ready Interrupt flag */
453
#define RCC_IT_LSIRDY                    ((uint8_t)RCC_CIR_LSIRDYF)   /*!< LSI Ready Interrupt flag */
455
#define RCC_IT_LSERDY                    ((uint8_t)RCC_CIR_LSERDYF) /*!< LSE Ready Interrupt flag */
454
#define RCC_IT_LSERDY                    ((uint8_t)RCC_CIR_LSERDYF)   /*!< LSE Ready Interrupt flag */
456
#define RCC_IT_HSIRDY                    ((uint8_t)RCC_CIR_HSIRDYF) /*!< HSI Ready Interrupt flag */
455
#define RCC_IT_HSIRDY                    ((uint8_t)RCC_CIR_HSIRDYF)   /*!< HSI Ready Interrupt flag */
457
#define RCC_IT_HSERDY                    ((uint8_t)RCC_CIR_HSERDYF) /*!< HSE Ready Interrupt flag */
456
#define RCC_IT_HSERDY                    ((uint8_t)RCC_CIR_HSERDYF)   /*!< HSE Ready Interrupt flag */
458
#define RCC_IT_PLLRDY                    ((uint8_t)RCC_CIR_PLLRDYF) /*!< PLL Ready Interrupt flag */
457
#define RCC_IT_PLLRDY                    ((uint8_t)RCC_CIR_PLLRDYF)   /*!< PLL Ready Interrupt flag */
459
#define RCC_IT_CSS                       ((uint8_t)RCC_CIR_CSSF)    /*!< Clock Security System Interrupt flag */
458
#define RCC_IT_CSS                       ((uint8_t)RCC_CIR_CSSF)      /*!< Clock Security System Interrupt flag */
460
/**
459
/**
461
  * @}
460
  * @}
462
  */
461
  */
463
 
462
 
464
/** @defgroup RCC_Flag Flags
463
/** @defgroup RCC_Flag Flags
Line 475... Line 474...
475
#define RCC_FLAG_HSERDY                  ((uint8_t)((CR_REG_INDEX << 5) | POSITION_VAL(RCC_CR_HSERDY))) /*!< External High Speed clock ready flag */
474
#define RCC_FLAG_HSERDY                  ((uint8_t)((CR_REG_INDEX << 5) | POSITION_VAL(RCC_CR_HSERDY))) /*!< External High Speed clock ready flag */
476
#define RCC_FLAG_PLLRDY                  ((uint8_t)((CR_REG_INDEX << 5) | POSITION_VAL(RCC_CR_PLLRDY))) /*!< PLL clock ready flag */
475
#define RCC_FLAG_PLLRDY                  ((uint8_t)((CR_REG_INDEX << 5) | POSITION_VAL(RCC_CR_PLLRDY))) /*!< PLL clock ready flag */
477
 
476
 
478
/* Flags in the CSR register */
477
/* Flags in the CSR register */
479
#define RCC_FLAG_LSIRDY                  ((uint8_t)((CSR_REG_INDEX << 5) | POSITION_VAL(RCC_CSR_LSIRDY)))   /*!< Internal Low Speed oscillator Ready */
478
#define RCC_FLAG_LSIRDY                  ((uint8_t)((CSR_REG_INDEX << 5) | POSITION_VAL(RCC_CSR_LSIRDY)))   /*!< Internal Low Speed oscillator Ready */
480
#define RCC_FLAG_RMV                     ((uint8_t)((CSR_REG_INDEX << 5) | RCC_RMVF_BIT_NUMBER))     /*!< Remove reset flag */
-
 
481
#define RCC_FLAG_PINRST                  ((uint8_t)((CSR_REG_INDEX << 5) | POSITION_VAL(RCC_CSR_PINRSTF)))  /*!< PIN reset flag */
479
#define RCC_FLAG_PINRST                  ((uint8_t)((CSR_REG_INDEX << 5) | POSITION_VAL(RCC_CSR_PINRSTF)))  /*!< PIN reset flag */
482
#define RCC_FLAG_PORRST                  ((uint8_t)((CSR_REG_INDEX << 5) | POSITION_VAL(RCC_CSR_PORRSTF)))  /*!< POR/PDR reset flag */
480
#define RCC_FLAG_PORRST                  ((uint8_t)((CSR_REG_INDEX << 5) | POSITION_VAL(RCC_CSR_PORRSTF)))  /*!< POR/PDR reset flag */
483
#define RCC_FLAG_SFTRST                  ((uint8_t)((CSR_REG_INDEX << 5) | POSITION_VAL(RCC_CSR_SFTRSTF)))  /*!< Software Reset flag */
481
#define RCC_FLAG_SFTRST                  ((uint8_t)((CSR_REG_INDEX << 5) | POSITION_VAL(RCC_CSR_SFTRSTF)))  /*!< Software Reset flag */
484
#define RCC_FLAG_IWDGRST                 ((uint8_t)((CSR_REG_INDEX << 5) | POSITION_VAL(RCC_CSR_IWDGRSTF))) /*!< Independent Watchdog reset flag */
482
#define RCC_FLAG_IWDGRST                 ((uint8_t)((CSR_REG_INDEX << 5) | POSITION_VAL(RCC_CSR_IWDGRSTF))) /*!< Independent Watchdog reset flag */
485
#define RCC_FLAG_WWDGRST                 ((uint8_t)((CSR_REG_INDEX << 5) | POSITION_VAL(RCC_CSR_WWDGRSTF))) /*!< Window watchdog reset flag */
483
#define RCC_FLAG_WWDGRST                 ((uint8_t)((CSR_REG_INDEX << 5) | POSITION_VAL(RCC_CSR_WWDGRSTF))) /*!< Window watchdog reset flag */
Line 801... Line 799...
801
 
799
 
802
/** @defgroup RCC_APB1_Force_Release_Reset APB1 Force Release Reset
800
/** @defgroup RCC_APB1_Force_Release_Reset APB1 Force Release Reset
803
  * @brief  Force or release APB1 peripheral reset.
801
  * @brief  Force or release APB1 peripheral reset.
804
  * @{  
802
  * @{  
805
  */
803
  */
806
#define __HAL_RCC_APB1_FORCE_RESET()       (RCC->APB2RSTR = 0xFFFFFFFF)  
804
#define __HAL_RCC_APB1_FORCE_RESET()       (RCC->APB2RSTR = 0xFFFFFFFFU)  
807
#define __HAL_RCC_TIM2_FORCE_RESET()       (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM2RST))
805
#define __HAL_RCC_TIM2_FORCE_RESET()       (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM2RST))
808
#define __HAL_RCC_TIM3_FORCE_RESET()       (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM3RST))
806
#define __HAL_RCC_TIM3_FORCE_RESET()       (RCC->APB1RSTR |= (RCC_APB1RSTR_TIM3RST))
809
#define __HAL_RCC_WWDG_FORCE_RESET()       (RCC->APB1RSTR |= (RCC_APB1RSTR_WWDGRST))
807
#define __HAL_RCC_WWDG_FORCE_RESET()       (RCC->APB1RSTR |= (RCC_APB1RSTR_WWDGRST))
810
#define __HAL_RCC_USART2_FORCE_RESET()     (RCC->APB1RSTR |= (RCC_APB1RSTR_USART2RST))
808
#define __HAL_RCC_USART2_FORCE_RESET()     (RCC->APB1RSTR |= (RCC_APB1RSTR_USART2RST))
811
#define __HAL_RCC_I2C1_FORCE_RESET()       (RCC->APB1RSTR |= (RCC_APB1RSTR_I2C1RST))
809
#define __HAL_RCC_I2C1_FORCE_RESET()       (RCC->APB1RSTR |= (RCC_APB1RSTR_I2C1RST))
Line 829... Line 827...
829
 
827
 
830
/** @defgroup RCC_APB2_Force_Release_Reset APB2 Force Release Reset
828
/** @defgroup RCC_APB2_Force_Release_Reset APB2 Force Release Reset
831
  * @brief  Force or release APB2 peripheral reset.
829
  * @brief  Force or release APB2 peripheral reset.
832
  * @{  
830
  * @{  
833
  */
831
  */
834
#define __HAL_RCC_APB2_FORCE_RESET()       (RCC->APB2RSTR = 0xFFFFFFFF)  
832
#define __HAL_RCC_APB2_FORCE_RESET()       (RCC->APB2RSTR = 0xFFFFFFFFU)  
835
#define __HAL_RCC_AFIO_FORCE_RESET()       (RCC->APB2RSTR |= (RCC_APB2RSTR_AFIORST))
833
#define __HAL_RCC_AFIO_FORCE_RESET()       (RCC->APB2RSTR |= (RCC_APB2RSTR_AFIORST))
836
#define __HAL_RCC_GPIOA_FORCE_RESET()      (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPARST))
834
#define __HAL_RCC_GPIOA_FORCE_RESET()      (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPARST))
837
#define __HAL_RCC_GPIOB_FORCE_RESET()      (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPBRST))
835
#define __HAL_RCC_GPIOB_FORCE_RESET()      (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPBRST))
838
#define __HAL_RCC_GPIOC_FORCE_RESET()      (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPCRST))
836
#define __HAL_RCC_GPIOC_FORCE_RESET()      (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPCRST))
839
#define __HAL_RCC_GPIOD_FORCE_RESET()      (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPDRST))
837
#define __HAL_RCC_GPIOD_FORCE_RESET()      (RCC->APB2RSTR |= (RCC_APB2RSTR_IOPDRST))
Line 926... Line 924...
926
  *         is stable and can be used to clock the PLL and/or system clock.
924
  *         is stable and can be used to clock the PLL and/or system clock.
927
  * @note   HSE state can not be changed if it is used directly or through the
925
  * @note   HSE state can not be changed if it is used directly or through the
928
  *         PLL as system clock. In this case, you have to select another source
926
  *         PLL as system clock. In this case, you have to select another source
929
  *         of the system clock then change the HSE state (ex. disable it).
927
  *         of the system clock then change the HSE state (ex. disable it).
930
  * @note   The HSE is stopped by hardware when entering STOP and STANDBY modes.
928
  * @note   The HSE is stopped by hardware when entering STOP and STANDBY modes.
931
  * @note   This function reset the CSSON bit, so if the Clock security system(CSS)
929
  * @note   This function reset the CSSON bit, so if the clock security system(CSS)
932
  *         was previously enabled you have to enable it again after calling this
930
  *         was previously enabled you have to enable it again after calling this
933
  *         function.
931
  *         function.
934
  * @param  __STATE__ specifies the new state of the HSE.
932
  * @param  __STATE__ specifies the new state of the HSE.
935
  *          This parameter can be one of the following values:
933
  *          This parameter can be one of the following values:
936
  *            @arg RCC_HSE_OFF turn OFF the HSE oscillator, HSERDY flag goes low after
934
  *            @arg @ref RCC_HSE_OFF turn OFF the HSE oscillator, HSERDY flag goes low after
937
  *                              6 HSE oscillator clock cycles.
935
  *                              6 HSE oscillator clock cycles.
938
  *            @arg RCC_HSE_ON turn ON the HSE oscillator
936
  *            @arg @ref RCC_HSE_ON turn ON the HSE oscillator
939
  *            @arg RCC_HSE_BYPASS HSE oscillator bypassed with external clock
937
  *            @arg @ref RCC_HSE_BYPASS HSE oscillator bypassed with external clock
940
  */
938
  */
941
#define __HAL_RCC_HSE_CONFIG(__STATE__)                                     \
939
#define __HAL_RCC_HSE_CONFIG(__STATE__)                                     \
942
                    do{                                                     \
940
                    do{                                                     \
943
                      if ((__STATE__) == RCC_HSE_ON)                        \
941
                      if ((__STATE__) == RCC_HSE_ON)                        \
944
                      {                                                     \
942
                      {                                                     \
Line 979... Line 977...
979
  * @note   After enabling the LSE (RCC_LSE_ON or RCC_LSE_BYPASS), the application
977
  * @note   After enabling the LSE (RCC_LSE_ON or RCC_LSE_BYPASS), the application
980
  *         software should wait on LSERDY flag to be set indicating that LSE clock
978
  *         software should wait on LSERDY flag to be set indicating that LSE clock
981
  *         is stable and can be used to clock the RTC.
979
  *         is stable and can be used to clock the RTC.
982
  * @param  __STATE__ specifies the new state of the LSE.
980
  * @param  __STATE__ specifies the new state of the LSE.
983
  *         This parameter can be one of the following values:
981
  *         This parameter can be one of the following values:
984
  *            @arg RCC_LSE_OFF turn OFF the LSE oscillator, LSERDY flag goes low after
982
  *            @arg @ref RCC_LSE_OFF turn OFF the LSE oscillator, LSERDY flag goes low after
985
  *                              6 LSE oscillator clock cycles.
983
  *                              6 LSE oscillator clock cycles.
986
  *            @arg RCC_LSE_ON turn ON the LSE oscillator.
984
  *            @arg @ref RCC_LSE_ON turn ON the LSE oscillator.
987
  *            @arg RCC_LSE_BYPASS LSE oscillator bypassed with external clock.
985
  *            @arg @ref RCC_LSE_BYPASS LSE oscillator bypassed with external clock.
988
  */
986
  */
989
#define __HAL_RCC_LSE_CONFIG(__STATE__)                                     \
987
#define __HAL_RCC_LSE_CONFIG(__STATE__)                                     \
990
                    do{                                                     \
988
                    do{                                                     \
991
                      if ((__STATE__) == RCC_LSE_ON)                        \
989
                      if ((__STATE__) == RCC_LSE_ON)                        \
992
                      {                                                     \
990
                      {                                                     \
Line 1033... Line 1031...
1033
/** @brief Macro to configure the main PLL clock source and multiplication factors.
1031
/** @brief Macro to configure the main PLL clock source and multiplication factors.
1034
  * @note   This function must be used only when the main PLL is disabled.
1032
  * @note   This function must be used only when the main PLL is disabled.
1035
  *  
1033
  *  
1036
  * @param  __RCC_PLLSOURCE__ specifies the PLL entry clock source.
1034
  * @param  __RCC_PLLSOURCE__ specifies the PLL entry clock source.
1037
  *          This parameter can be one of the following values:
1035
  *          This parameter can be one of the following values:
1038
  *            @arg RCC_PLLSOURCE_HSI_DIV2 HSI oscillator clock selected as PLL clock entry
1036
  *            @arg @ref RCC_PLLSOURCE_HSI_DIV2 HSI oscillator clock selected as PLL clock entry
1039
  *            @arg RCC_PLLSOURCE_HSE HSE oscillator clock selected as PLL clock entry
1037
  *            @arg @ref RCC_PLLSOURCE_HSE HSE oscillator clock selected as PLL clock entry
1040
  * @param  __PLLMUL__ specifies the multiplication factor for PLL VCO output clock
1038
  * @param  __PLLMUL__ specifies the multiplication factor for PLL VCO output clock
1041
  *          This parameter can be one of the following values:
1039
  *          This parameter can be one of the following values:
1042
  *             @arg RCC_PLL_MUL2 PLLVCO = PLL clock entry x 2 (*)
1040
  *             @arg @ref RCC_PLL_MUL4   PLLVCO = PLL clock entry x 4
1043
  *             @arg RCC_PLL_MUL3 PLLVCO = PLL clock entry x 3 (*)
1041
  *             @arg @ref RCC_PLL_MUL6   PLLVCO = PLL clock entry x 6
-
 
1042
  @if STM32F105xC
1044
  *             @arg RCC_PLL_MUL4 PLLVCO = PLL clock entry x 4
1043
  *             @arg @ref RCC_PLL_MUL6_5 PLLVCO = PLL clock entry x 6.5
-
 
1044
  @elseif STM32F107xC
1045
  *             @arg RCC_PLL_MUL6 PLLVCO = PLL clock entry x 6
1045
  *             @arg @ref RCC_PLL_MUL6_5 PLLVCO = PLL clock entry x 6.5
-
 
1046
  @else
1046
  *             @arg RCC_PLL_MUL6_5 PLLVCO = PLL clock entry x 6.5 (**)
1047
  *             @arg @ref RCC_PLL_MUL2   PLLVCO = PLL clock entry x 2
1047
  *             @arg RCC_PLL_MUL8 PLLVCO = PLL clock entry x 8
1048
  *             @arg @ref RCC_PLL_MUL3   PLLVCO = PLL clock entry x 3
1048
  *             @arg RCC_PLL_MUL9 PLLVCO = PLL clock entry x 9
1049
  *             @arg @ref RCC_PLL_MUL10  PLLVCO = PLL clock entry x 10
1049
  *             @arg RCC_PLL_MUL10 PLLVCO = PLL clock entry x 10 (*)
1050
  *             @arg @ref RCC_PLL_MUL11  PLLVCO = PLL clock entry x 11
1050
  *             @arg RCC_PLL_MUL11 PLLVCO = PLL clock entry x 11 (*)
1051
  *             @arg @ref RCC_PLL_MUL12  PLLVCO = PLL clock entry x 12
1051
  *             @arg RCC_PLL_MUL12 PLLVCO = PLL clock entry x 12 (*)
1052
  *             @arg @ref RCC_PLL_MUL13  PLLVCO = PLL clock entry x 13
1052
  *             @arg RCC_PLL_MUL13 PLLVCO = PLL clock entry x 13 (*)
1053
  *             @arg @ref RCC_PLL_MUL14  PLLVCO = PLL clock entry x 14
1053
  *             @arg RCC_PLL_MUL14 PLLVCO = PLL clock entry x 14 (*)
1054
  *             @arg @ref RCC_PLL_MUL15  PLLVCO = PLL clock entry x 15
1054
  *             @arg RCC_PLL_MUL15 PLLVCO = PLL clock entry x 15 (*)
1055
  *             @arg @ref RCC_PLL_MUL16  PLLVCO = PLL clock entry x 16
-
 
1056
  @endif
1055
  *             @arg RCC_PLL_MUL16 PLLVCO = PLL clock entry x 16 (*)
1057
  *             @arg @ref RCC_PLL_MUL8   PLLVCO = PLL clock entry x 8
1056
  * @note (*) These values are not available in STM32F105xx & STM32F107xx devices.
1058
  *             @arg @ref RCC_PLL_MUL9   PLLVCO = PLL clock entry x 9
1057
  * @note (**) This value is available in STM32F105xx & STM32F107xx devices only.
-
 
1058
  *  
1059
  *  
1059
  */
1060
  */
1060
#define __HAL_RCC_PLL_CONFIG(__RCC_PLLSOURCE__, __PLLMUL__)\
1061
#define __HAL_RCC_PLL_CONFIG(__RCC_PLLSOURCE__, __PLLMUL__)\
1061
          MODIFY_REG(RCC->CFGR, (RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL),((__RCC_PLLSOURCE__) | (__PLLMUL__) ))
1062
          MODIFY_REG(RCC->CFGR, (RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL),((__RCC_PLLSOURCE__) | (__PLLMUL__) ))
1062
 
1063
 
1063
/** @brief  Get oscillator clock selected as PLL input clock
1064
/** @brief  Get oscillator clock selected as PLL input clock
1064
  * @retval The clock source used for PLL entry. The returned value can be one
1065
  * @retval The clock source used for PLL entry. The returned value can be one
1065
  *         of the following:
1066
  *         of the following:
1066
  *             @arg RCC_PLLSOURCE_HSI_DIV2 HSI oscillator clock selected as PLL input clock
1067
  *             @arg @ref RCC_PLLSOURCE_HSI_DIV2 HSI oscillator clock selected as PLL input clock
1067
  *             @arg RCC_PLLSOURCE_HSE HSE oscillator clock selected as PLL input clock
1068
  *             @arg @ref RCC_PLLSOURCE_HSE HSE oscillator clock selected as PLL input clock
1068
  */
1069
  */
1069
#define __HAL_RCC_GET_PLL_OSCSOURCE() ((uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PLLSRC)))
1070
#define __HAL_RCC_GET_PLL_OSCSOURCE() ((uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PLLSRC)))
1070
 
1071
 
1071
/**
1072
/**
1072
  * @}
1073
  * @}
Line 1076... Line 1077...
1076
  * @{  
1077
  * @{  
1077
  */
1078
  */
1078
 
1079
 
1079
/**
1080
/**
1080
  * @brief  Macro to configure the system clock source.
1081
  * @brief  Macro to configure the system clock source.
1081
  * @param  __RCC_SYSCLKSOURCE__ specifies the system clock source.
1082
  * @param  __SYSCLKSOURCE__ specifies the system clock source.
1082
  *          This parameter can be one of the following values:
1083
  *          This parameter can be one of the following values:
1083
  *              @arg RCC_SYSCLKSOURCE_HSI HSI oscillator is used as system clock source.
1084
  *              @arg @ref RCC_SYSCLKSOURCE_HSI HSI oscillator is used as system clock source.
1084
  *              @arg RCC_SYSCLKSOURCE_HSE HSE oscillator is used as system clock source.
1085
  *              @arg @ref RCC_SYSCLKSOURCE_HSE HSE oscillator is used as system clock source.
1085
  *              @arg RCC_SYSCLKSOURCE_PLLCLK PLL output is used as system clock source.
1086
  *              @arg @ref RCC_SYSCLKSOURCE_PLLCLK PLL output is used as system clock source.
1086
  */
1087
  */
1087
#define __HAL_RCC_SYSCLK_CONFIG(__RCC_SYSCLKSOURCE__) \
1088
#define __HAL_RCC_SYSCLK_CONFIG(__SYSCLKSOURCE__) \
1088
                  MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, (__RCC_SYSCLKSOURCE__))
1089
                  MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, (__SYSCLKSOURCE__))
1089
 
1090
 
1090
/** @brief  Macro to get the clock source used as system clock.
1091
/** @brief  Macro to get the clock source used as system clock.
1091
  * @retval The clock source used as system clock. The returned value can be one
1092
  * @retval The clock source used as system clock. The returned value can be one
1092
  *         of the following:
1093
  *         of the following:
1093
  *             @arg RCC_SYSCLKSOURCE_STATUS_HSI HSI used as system clock
1094
  *             @arg @ref RCC_SYSCLKSOURCE_STATUS_HSI HSI used as system clock
1094
  *             @arg RCC_SYSCLKSOURCE_STATUS_HSE HSE used as system clock
1095
  *             @arg @ref RCC_SYSCLKSOURCE_STATUS_HSE HSE used as system clock
1095
  *             @arg RCC_SYSCLKSOURCE_STATUS_PLLCLK PLL used as system clock
1096
  *             @arg @ref RCC_SYSCLKSOURCE_STATUS_PLLCLK PLL used as system clock
1096
  */
1097
  */
1097
#define __HAL_RCC_GET_SYSCLK_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR,RCC_CFGR_SWS)))
1098
#define __HAL_RCC_GET_SYSCLK_SOURCE() ((uint32_t)(READ_BIT(RCC->CFGR,RCC_CFGR_SWS)))
1098
 
1099
 
1099
/**
1100
/**
1100
  * @}
1101
  * @}
Line 1106... Line 1107...
1106
 
1107
 
1107
#if   defined(RCC_CFGR_MCO_3)
1108
#if   defined(RCC_CFGR_MCO_3)
1108
/** @brief  Macro to configure the MCO clock.
1109
/** @brief  Macro to configure the MCO clock.
1109
  * @param  __MCOCLKSOURCE__ specifies the MCO clock source.
1110
  * @param  __MCOCLKSOURCE__ specifies the MCO clock source.
1110
  *         This parameter can be one of the following values:
1111
  *         This parameter can be one of the following values:
1111
  *            @arg RCC_MCO1SOURCE_NOCLOCK: No clock
1112
  *            @arg @ref RCC_MCO1SOURCE_NOCLOCK      No clock selected as MCO clock
1112
  *            @arg RCC_MCO1SOURCE_SYSCLK: System clock (SYSCLK) selected as MCO clock
1113
  *            @arg @ref RCC_MCO1SOURCE_SYSCLK       System clock (SYSCLK) selected as MCO clock
1113
  *            @arg RCC_MCO1SOURCE_HSI: HSI selected as MCO clock
1114
  *            @arg @ref RCC_MCO1SOURCE_HSI          HSI selected as MCO clock
1114
  *            @arg RCC_MCO1SOURCE_HSE: HSE selected as MCO clock
1115
  *            @arg @ref RCC_MCO1SOURCE_HSE          HSE selected as MCO clock
1115
  *            @arg RCC_MCO1SOURCE_PLLCLK: PLL clock divided by 2 selected as MCO clock
1116
  *            @arg @ref RCC_MCO1SOURCE_PLLCLK       PLL clock divided by 2 selected as MCO clock
1116
  *            @arg RCC_MCO1SOURCE_PLL2CLK: PLL2 clock selected by 2 selected as MCO clock
1117
  *            @arg @ref RCC_MCO1SOURCE_PLL2CLK      PLL2 clock selected by 2 selected as MCO clock
1117
  *            @arg RCC_MCO1SOURCE_PLL3CLK_DIV2: PLL3 clock divided by 2 selected as MCO clock
1118
  *            @arg @ref RCC_MCO1SOURCE_PLL3CLK_DIV2 PLL3 clock divided by 2 selected as MCO clock
1118
  *            @arg RCC_MCO1SOURCE_EXT_HSE: XT1 external 3-25 MHz oscillator clock selected (for Ethernet) as MCO clock
1119
  *            @arg @ref RCC_MCO1SOURCE_EXT_HSE XT1  external 3-25 MHz oscillator clock selected (for Ethernet) as MCO clock
1119
  *            @arg RCC_MCO1SOURCE_PLL3CLK: PLL3 clock selected (for Ethernet) as MCO clock
1120
  *            @arg @ref RCC_MCO1SOURCE_PLL3CLK      PLL3 clock selected (for Ethernet) as MCO clock
1120
  * @param  __MCODIV__ specifies the MCO clock prescaler.
1121
  * @param  __MCODIV__ specifies the MCO clock prescaler.
1121
  *         This parameter can be one of the following values:
1122
  *         This parameter can be one of the following values:
1122
  *            @arg RCC_MCODIV_1: No division applied on MCO clock source
1123
  *            @arg @ref RCC_MCODIV_1 No division applied on MCO clock source
1123
  */
1124
  */
1124
#else
1125
#else
1125
/** @brief  Macro to configure the MCO clock.
1126
/** @brief  Macro to configure the MCO clock.
1126
  * @param  __MCOCLKSOURCE__ specifies the MCO clock source.
1127
  * @param  __MCOCLKSOURCE__ specifies the MCO clock source.
1127
  *         This parameter can be one of the following values:
1128
  *         This parameter can be one of the following values:
1128
  *            @arg RCC_MCO1SOURCE_NOCLOCK: No clock
1129
  *            @arg @ref RCC_MCO1SOURCE_NOCLOCK No clock selected as MCO clock
1129
  *            @arg RCC_MCO1SOURCE_SYSCLK: System clock (SYSCLK) selected as MCO clock
1130
  *            @arg @ref RCC_MCO1SOURCE_SYSCLK  System clock (SYSCLK) selected as MCO clock
1130
  *            @arg RCC_MCO1SOURCE_HSI: HSI selected as MCO clock
1131
  *            @arg @ref RCC_MCO1SOURCE_HSI HSI selected as MCO clock
1131
  *            @arg RCC_MCO1SOURCE_HSE: HSE selected as MCO clock
1132
  *            @arg @ref RCC_MCO1SOURCE_HSE HSE selected as MCO clock
1132
  *            @arg RCC_MCO1SOURCE_PLLCLK: PLL clock divided by 2 selected as MCO clock
1133
  *            @arg @ref RCC_MCO1SOURCE_PLLCLK  PLL clock divided by 2 selected as MCO clock
1133
  * @param  __MCODIV__ specifies the MCO clock prescaler.
1134
  * @param  __MCODIV__ specifies the MCO clock prescaler.
1134
  *         This parameter can be one of the following values:
1135
  *         This parameter can be one of the following values:
1135
  *            @arg RCC_MCODIV_1: No division applied on MCO clock source
1136
  *            @arg @ref RCC_MCODIV_1 No division applied on MCO clock source
1136
  */
1137
  */
1137
#endif
1138
#endif
1138
 
1139
 
1139
#define __HAL_RCC_MCO1_CONFIG(__MCOCLKSOURCE__, __MCODIV__) \
1140
#define __HAL_RCC_MCO1_CONFIG(__MCOCLKSOURCE__, __MCODIV__) \
1140
                 MODIFY_REG(RCC->CFGR, RCC_CFGR_MCO, (__MCOCLKSOURCE__))
1141
                 MODIFY_REG(RCC->CFGR, RCC_CFGR_MCO, (__MCOCLKSOURCE__))
Line 1157... Line 1158...
1157
  *         Backup domain is reset using @ref __HAL_RCC_BACKUPRESET_FORCE() macro, or by
1158
  *         Backup domain is reset using @ref __HAL_RCC_BACKUPRESET_FORCE() macro, or by
1158
  *         a Power On Reset (POR).
1159
  *         a Power On Reset (POR).
1159
  *
1160
  *
1160
  * @param  __RTC_CLKSOURCE__ specifies the RTC clock source.
1161
  * @param  __RTC_CLKSOURCE__ specifies the RTC clock source.
1161
  *          This parameter can be one of the following values:
1162
  *          This parameter can be one of the following values:
1162
  *             @arg RCC_RTCCLKSOURCE_NO_CLK No clock selected as RTC clock
1163
  *             @arg @ref RCC_RTCCLKSOURCE_NO_CLK No clock selected as RTC clock
1163
  *             @arg RCC_RTCCLKSOURCE_LSE LSE selected as RTC clock
1164
  *             @arg @ref RCC_RTCCLKSOURCE_LSE LSE selected as RTC clock
1164
  *             @arg RCC_RTCCLKSOURCE_LSI LSI selected as RTC clock
1165
  *             @arg @ref RCC_RTCCLKSOURCE_LSI LSI selected as RTC clock
1165
  *             @arg RCC_RTCCLKSOURCE_HSE_DIV128 HSE divided by 128 selected as RTC clock
1166
  *             @arg @ref RCC_RTCCLKSOURCE_HSE_DIV128 HSE divided by 128 selected as RTC clock
1166
  * @note   If the LSE or LSI is used as RTC clock source, the RTC continues to
1167
  * @note   If the LSE or LSI is used as RTC clock source, the RTC continues to
1167
  *         work in STOP and STANDBY modes, and can be used as wakeup source.
1168
  *         work in STOP and STANDBY modes, and can be used as wakeup source.
1168
  *         However, when the HSE clock is used as RTC clock source, the RTC
1169
  *         However, when the HSE clock is used as RTC clock source, the RTC
1169
  *         cannot be used in STOP and STANDBY modes.    
1170
  *         cannot be used in STOP and STANDBY modes.    
1170
  * @note   The maximum input clock frequency for RTC is 1MHz (when using HSE as
1171
  * @note   The maximum input clock frequency for RTC is 1MHz (when using HSE as
Line 1172... Line 1173...
1172
  */
1173
  */
1173
#define __HAL_RCC_RTC_CONFIG(__RTC_CLKSOURCE__) MODIFY_REG(RCC->BDCR, RCC_BDCR_RTCSEL, (__RTC_CLKSOURCE__))
1174
#define __HAL_RCC_RTC_CONFIG(__RTC_CLKSOURCE__) MODIFY_REG(RCC->BDCR, RCC_BDCR_RTCSEL, (__RTC_CLKSOURCE__))
1174
                                                   
1175
                                                   
1175
/** @brief Macro to get the RTC clock source.
1176
/** @brief Macro to get the RTC clock source.
1176
  * @retval The clock source can be one of the following values:
1177
  * @retval The clock source can be one of the following values:
1177
  *            @arg RCC_RTCCLKSOURCE_NO_CLK No clock selected as RTC clock
1178
  *            @arg @ref RCC_RTCCLKSOURCE_NO_CLK No clock selected as RTC clock
1178
  *            @arg RCC_RTCCLKSOURCE_LSE LSE selected as RTC clock
1179
  *            @arg @ref RCC_RTCCLKSOURCE_LSE LSE selected as RTC clock
1179
  *            @arg RCC_RTCCLKSOURCE_LSI LSI selected as RTC clock
1180
  *            @arg @ref RCC_RTCCLKSOURCE_LSI LSI selected as RTC clock
1180
  *            @arg RCC_RTCCLKSOURCE_HSE_DIV128 HSE divided by 128 selected as RTC clock
1181
  *            @arg @ref RCC_RTCCLKSOURCE_HSE_DIV128 HSE divided by 128 selected as RTC clock
1181
  */
1182
  */
1182
#define __HAL_RCC_GET_RTC_SOURCE() (READ_BIT(RCC->BDCR, RCC_BDCR_RTCSEL))
1183
#define __HAL_RCC_GET_RTC_SOURCE() (READ_BIT(RCC->BDCR, RCC_BDCR_RTCSEL))
1183
 
1184
 
1184
/** @brief Macro to enable the the RTC clock.
1185
/** @brief Macro to enable the the RTC clock.
1185
  * @note   These macros must be used only after the RTC clock source was selected.
1186
  * @note   These macros must be used only after the RTC clock source was selected.
Line 1211... Line 1212...
1211
  */
1212
  */
1212
 
1213
 
1213
/** @brief Enable RCC interrupt.
1214
/** @brief Enable RCC interrupt.
1214
  * @param  __INTERRUPT__ specifies the RCC interrupt sources to be enabled.
1215
  * @param  __INTERRUPT__ specifies the RCC interrupt sources to be enabled.
1215
  *          This parameter can be any combination of the following values:
1216
  *          This parameter can be any combination of the following values:
1216
  *            @arg RCC_IT_LSIRDY LSI ready interrupt
1217
  *            @arg @ref RCC_IT_LSIRDY LSI ready interrupt
1217
  *            @arg RCC_IT_LSERDY LSE ready interrupt
1218
  *            @arg @ref RCC_IT_LSERDY LSE ready interrupt
1218
  *            @arg RCC_IT_HSIRDY HSI ready interrupt
1219
  *            @arg @ref RCC_IT_HSIRDY HSI ready interrupt
1219
  *            @arg RCC_IT_HSERDY HSE ready interrupt
1220
  *            @arg @ref RCC_IT_HSERDY HSE ready interrupt
1220
  *            @arg RCC_IT_PLLRDY main PLL ready interrupt
1221
  *            @arg @ref RCC_IT_PLLRDY main PLL ready interrupt
-
 
1222
  @if STM32F105xx
1221
  *            @arg RCC_IT_PLL2RDY Main PLL2 ready interrupt.(*)
1223
  *            @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt.
1222
  *            @arg RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt.(*)
1224
  *            @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt.
-
 
1225
  @elsif STM32F107xx
-
 
1226
  *            @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt.
1223
  * @note (*) This bit is available in STM32F105xx & STM32F107xx devices only.
1227
  *            @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt.
-
 
1228
  @endif
1224
  */
1229
  */
1225
#define __HAL_RCC_ENABLE_IT(__INTERRUPT__) (*(__IO uint8_t *) RCC_CIR_BYTE1_ADDRESS |= (__INTERRUPT__))
1230
#define __HAL_RCC_ENABLE_IT(__INTERRUPT__) (*(__IO uint8_t *) RCC_CIR_BYTE1_ADDRESS |= (__INTERRUPT__))
1226
 
1231
 
1227
/** @brief Disable RCC interrupt.
1232
/** @brief Disable RCC interrupt.
1228
  * @param  __INTERRUPT__ specifies the RCC interrupt sources to be disabled.
1233
  * @param  __INTERRUPT__ specifies the RCC interrupt sources to be disabled.
1229
  *          This parameter can be any combination of the following values:
1234
  *          This parameter can be any combination of the following values:
1230
  *            @arg RCC_IT_LSIRDY LSI ready interrupt
1235
  *            @arg @ref RCC_IT_LSIRDY LSI ready interrupt
1231
  *            @arg RCC_IT_LSERDY LSE ready interrupt
1236
  *            @arg @ref RCC_IT_LSERDY LSE ready interrupt
1232
  *            @arg RCC_IT_HSIRDY HSI ready interrupt
1237
  *            @arg @ref RCC_IT_HSIRDY HSI ready interrupt
1233
  *            @arg RCC_IT_HSERDY HSE ready interrupt
1238
  *            @arg @ref RCC_IT_HSERDY HSE ready interrupt
1234
  *            @arg RCC_IT_PLLRDY main PLL ready interrupt
1239
  *            @arg @ref RCC_IT_PLLRDY main PLL ready interrupt
-
 
1240
  @if STM32F105xx
1235
  *            @arg RCC_IT_PLL2RDY Main PLL2 ready interrupt.(*)
1241
  *            @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt.
1236
  *            @arg RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt.(*)
1242
  *            @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt.
-
 
1243
  @elsif STM32F107xx
-
 
1244
  *            @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt.
1237
  * @note (*) This bit is available in STM32F105xx & STM32F107xx devices only.
1245
  *            @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt.
-
 
1246
  @endif
1238
  */
1247
  */
1239
#define __HAL_RCC_DISABLE_IT(__INTERRUPT__) (*(__IO uint8_t *) RCC_CIR_BYTE1_ADDRESS &= ~(__INTERRUPT__))
1248
#define __HAL_RCC_DISABLE_IT(__INTERRUPT__) (*(__IO uint8_t *) RCC_CIR_BYTE1_ADDRESS &= (uint8_t)(~(__INTERRUPT__)))
1240
 
1249
 
1241
/** @brief Clear the RCC's interrupt pending bits.
1250
/** @brief Clear the RCC's interrupt pending bits.
1242
  * @param  __INTERRUPT__ specifies the interrupt pending bit to clear.
1251
  * @param  __INTERRUPT__ specifies the interrupt pending bit to clear.
1243
  *          This parameter can be any combination of the following values:
1252
  *          This parameter can be any combination of the following values:
1244
  *            @arg RCC_IT_LSIRDY LSI ready interrupt.
1253
  *            @arg @ref RCC_IT_LSIRDY LSI ready interrupt.
1245
  *            @arg RCC_IT_LSERDY LSE ready interrupt.
1254
  *            @arg @ref RCC_IT_LSERDY LSE ready interrupt.
1246
  *            @arg RCC_IT_HSIRDY HSI ready interrupt.
1255
  *            @arg @ref RCC_IT_HSIRDY HSI ready interrupt.
1247
  *            @arg RCC_IT_HSERDY HSE ready interrupt.
1256
  *            @arg @ref RCC_IT_HSERDY HSE ready interrupt.
1248
  *            @arg RCC_IT_PLLRDY Main PLL ready interrupt.
1257
  *            @arg @ref RCC_IT_PLLRDY Main PLL ready interrupt.
-
 
1258
  @if STM32F105xx
1249
  *            @arg RCC_IT_PLL2RDY Main PLL2 ready interrupt.(*)
1259
  *            @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt.
1250
  *            @arg RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt.(*)
1260
  *            @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt.
-
 
1261
  @elsif STM32F107xx
1251
  *            @arg RCC_IT_CSS Clock Security System interrupt
1262
  *            @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt.
1252
  * @note (*) This bit is available in STM32F105xx & STM32F107xx devices only.
1263
  *            @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt.
-
 
1264
  @endif
-
 
1265
  *            @arg @ref RCC_IT_CSS Clock Security System interrupt
1253
  */
1266
  */
1254
#define __HAL_RCC_CLEAR_IT(__INTERRUPT__) (*(__IO uint8_t *) RCC_CIR_BYTE2_ADDRESS = (__INTERRUPT__))
1267
#define __HAL_RCC_CLEAR_IT(__INTERRUPT__) (*(__IO uint8_t *) RCC_CIR_BYTE2_ADDRESS = (__INTERRUPT__))
1255
 
1268
 
1256
/** @brief Check the RCC's interrupt has occurred or not.
1269
/** @brief Check the RCC's interrupt has occurred or not.
1257
  * @param  __INTERRUPT__ specifies the RCC interrupt source to check.
1270
  * @param  __INTERRUPT__ specifies the RCC interrupt source to check.
1258
  *          This parameter can be one of the following values:
1271
  *          This parameter can be one of the following values:
1259
  *            @arg RCC_IT_LSIRDY LSI ready interrupt.
1272
  *            @arg @ref RCC_IT_LSIRDY LSI ready interrupt.
1260
  *            @arg RCC_IT_LSERDY LSE ready interrupt.
1273
  *            @arg @ref RCC_IT_LSERDY LSE ready interrupt.
1261
  *            @arg RCC_IT_HSIRDY HSI ready interrupt.
1274
  *            @arg @ref RCC_IT_HSIRDY HSI ready interrupt.
1262
  *            @arg RCC_IT_HSERDY HSE ready interrupt.
1275
  *            @arg @ref RCC_IT_HSERDY HSE ready interrupt.
1263
  *            @arg RCC_IT_PLLRDY Main PLL ready interrupt.
1276
  *            @arg @ref RCC_IT_PLLRDY Main PLL ready interrupt.
-
 
1277
  @if STM32F105xx
1264
  *            @arg RCC_IT_PLL2RDY Main PLL2 ready interrupt.(*)
1278
  *            @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt.
1265
  *            @arg RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt.(*)
1279
  *            @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt.
-
 
1280
  @elsif STM32F107xx
1266
  *            @arg RCC_IT_CSS Clock Security System interrupt
1281
  *            @arg @ref RCC_IT_PLL2RDY Main PLL2 ready interrupt.
1267
  * @note (*) This bit is available in STM32F105xx & STM32F107xx devices only.
1282
  *            @arg @ref RCC_IT_PLLI2S2RDY Main PLLI2S ready interrupt.
-
 
1283
  @endif
-
 
1284
  *            @arg @ref RCC_IT_CSS Clock Security System interrupt
1268
  * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
1285
  * @retval The new state of __INTERRUPT__ (TRUE or FALSE).
1269
  */
1286
  */
1270
#define __HAL_RCC_GET_IT(__INTERRUPT__) ((RCC->CIR & (__INTERRUPT__)) == (__INTERRUPT__))
1287
#define __HAL_RCC_GET_IT(__INTERRUPT__) ((RCC->CIR & (__INTERRUPT__)) == (__INTERRUPT__))
1271
 
1288
 
1272
/** @brief Set RMVF bit to clear the reset flags.
1289
/** @brief Set RMVF bit to clear the reset flags.
Line 1276... Line 1293...
1276
#define __HAL_RCC_CLEAR_RESET_FLAGS() (*(__IO uint32_t *)RCC_CSR_RMVF_BB = ENABLE)
1293
#define __HAL_RCC_CLEAR_RESET_FLAGS() (*(__IO uint32_t *)RCC_CSR_RMVF_BB = ENABLE)
1277
 
1294
 
1278
/** @brief  Check RCC flag is set or not.
1295
/** @brief  Check RCC flag is set or not.
1279
  * @param  __FLAG__ specifies the flag to check.
1296
  * @param  __FLAG__ specifies the flag to check.
1280
  *          This parameter can be one of the following values:
1297
  *          This parameter can be one of the following values:
1281
  *            @arg RCC_FLAG_HSIRDY HSI oscillator clock ready.
1298
  *            @arg @ref RCC_FLAG_HSIRDY HSI oscillator clock ready.
1282
  *            @arg RCC_FLAG_HSERDY HSE oscillator clock ready.
1299
  *            @arg @ref RCC_FLAG_HSERDY HSE oscillator clock ready.
1283
  *            @arg RCC_FLAG_PLLRDY Main PLL clock ready.
1300
  *            @arg @ref RCC_FLAG_PLLRDY Main PLL clock ready.
-
 
1301
  @if STM32F105xx
-
 
1302
  *            @arg @ref RCC_FLAG_PLL2RDY Main PLL2 clock ready.
-
 
1303
  *            @arg @ref RCC_FLAG_PLLI2SRDY Main PLLI2S clock ready.
-
 
1304
  @elsif STM32F107xx
1284
  *            @arg RCC_FLAG_PLL2RDY Main PLL2 clock ready.(*)
1305
  *            @arg @ref RCC_FLAG_PLL2RDY Main PLL2 clock ready.
1285
  *            @arg RCC_FLAG_PLLI2SRDY Main PLLI2S clock ready.(*)
1306
  *            @arg @ref RCC_FLAG_PLLI2SRDY Main PLLI2S clock ready.
-
 
1307
  @endif
1286
  *            @arg RCC_FLAG_LSERDY LSE oscillator clock ready.
1308
  *            @arg @ref RCC_FLAG_LSERDY LSE oscillator clock ready.
1287
  *            @arg RCC_FLAG_LSIRDY LSI oscillator clock ready.
1309
  *            @arg @ref RCC_FLAG_LSIRDY LSI oscillator clock ready.
1288
  *            @arg RCC_FLAG_PINRST Pin reset.
1310
  *            @arg @ref RCC_FLAG_PINRST  Pin reset.
1289
  *            @arg RCC_FLAG_PORRST POR/PDR reset.
1311
  *            @arg @ref RCC_FLAG_PORRST  POR/PDR reset.
1290
  *            @arg RCC_FLAG_SFTRST Software reset.
1312
  *            @arg @ref RCC_FLAG_SFTRST  Software reset.
1291
  *            @arg RCC_FLAG_IWDGRST Independent Watchdog reset.
1313
  *            @arg @ref RCC_FLAG_IWDGRST Independent Watchdog reset.
1292
  *            @arg RCC_FLAG_WWDGRST Window Watchdog reset.
1314
  *            @arg @ref RCC_FLAG_WWDGRST Window Watchdog reset.
1293
  *            @arg RCC_FLAG_LPWRRST Low Power reset.
1315
  *            @arg @ref RCC_FLAG_LPWRRST Low Power reset.
1294
  * @note (*) This bit is available in STM32F105xx & STM32F107xx devices only.
-
 
1295
  * @retval The new state of __FLAG__ (TRUE or FALSE).
1316
  * @retval The new state of __FLAG__ (TRUE or FALSE).
1296
  */
1317
  */
1297
#define __HAL_RCC_GET_FLAG(__FLAG__) (((((__FLAG__) >> 5) == CR_REG_INDEX)?   RCC->CR   : \
1318
#define __HAL_RCC_GET_FLAG(__FLAG__) (((((__FLAG__) >> 5) == CR_REG_INDEX)?   RCC->CR   : \
1298
                                      ((((__FLAG__) >> 5) == BDCR_REG_INDEX)? RCC->BDCR : \
1319
                                      ((((__FLAG__) >> 5) == BDCR_REG_INDEX)? RCC->BDCR : \
1299
                                                                             RCC->CSR)) & ((uint32_t)1 << ((__FLAG__) & RCC_FLAG_MASK)))
1320
                                                                              RCC->CSR)) & ((uint32_t)1 << ((__FLAG__) & RCC_FLAG_MASK)))
1300
 
1321
 
1301
/**
1322
/**
1302
  * @}
1323
  * @}
1303
  */
1324
  */
1304
 
1325