This file provides firmware functions to manage the following functionalities of the Reset and clock control (RCC) peripheral: More...
#include <arch/cm3.h>#include "arch/cm3/stm/stm32l1xx_rcc.h"#include <sys/nutdebug.h>#include <stdlib.h>#include <errno.h>Defines | |
| #define | assert_param NUTASSERT |
| #define | RCC_OFFSET (RCC_BASE - PERIPH_BASE) |
| #define | CR_OFFSET (RCC_OFFSET + 0x00) |
| #define | HSION_BitNumber 0x00 |
| #define | CR_HSION_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (HSION_BitNumber * 4)) |
| #define | MSION_BitNumber 0x08 |
| #define | CR_MSION_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (MSION_BitNumber * 4)) |
| #define | PLLON_BitNumber 0x18 |
| #define | CR_PLLON_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (PLLON_BitNumber * 4)) |
| #define | CSSON_BitNumber 0x1C |
| #define | CR_CSSON_BB (PERIPH_BB_BASE + (CR_OFFSET * 32) + (CSSON_BitNumber * 4)) |
| #define | CSR_OFFSET (RCC_OFFSET + 0x34) |
| #define | LSION_BitNumber 0x00 |
| #define | CSR_LSION_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (LSION_BitNumber * 4)) |
| #define | RTCEN_BitNumber 0x16 |
| #define | CSR_RTCEN_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (RTCEN_BitNumber * 4)) |
| #define | RTCRST_BitNumber 0x17 |
| #define | CSR_RTCRST_BB (PERIPH_BB_BASE + (CSR_OFFSET * 32) + (RTCRST_BitNumber * 4)) |
| #define | FLAG_MASK ((uint8_t)0x1F) |
| #define | CR_BYTE3_ADDRESS ((uint32_t)0x40023802) |
| #define | ICSCR_BYTE4_ADDRESS ((uint32_t)0x40023807) |
| #define | CFGR_BYTE3_ADDRESS ((uint32_t)0x4002380A) |
| #define | CFGR_BYTE4_ADDRESS ((uint32_t)0x4002380B) |
| #define | CIR_BYTE2_ADDRESS ((uint32_t)0x4002380D) |
| #define | CIR_BYTE3_ADDRESS ((uint32_t)0x4002380E) |
| #define | CSR_BYTE2_ADDRESS ((uint32_t)0x40023835) |
Functions | |
| void | RCC_DeInit (void) |
| Resets the RCC clock configuration to the default reset state. | |
| void | RCC_HSEConfig (uint8_t RCC_HSE) |
| Configures the External High Speed oscillator (HSE). | |
| ErrorStatus | RCC_WaitForHSEStartUp (void) |
| Waits for HSE start-up. | |
| void | RCC_AdjustMSICalibrationValue (uint8_t MSICalibrationValue) |
| Adjusts the Internal Multi Speed oscillator (MSI) calibration value. | |
| void | RCC_MSIRangeConfig (uint32_t RCC_MSIRange) |
| Configures the Internal Multi Speed oscillator (MSI) clock range. | |
| void | RCC_MSICmd (FunctionalState NewState) |
| Enables or disables the Internal Multi Speed oscillator (MSI). | |
| void | RCC_AdjustHSICalibrationValue (uint8_t HSICalibrationValue) |
| Adjusts the Internal High Speed oscillator (HSI) calibration value. | |
| void | RCC_HSICmd (FunctionalState NewState) |
| Enables or disables the Internal High Speed oscillator (HSI). | |
| void | RCC_LSEConfig (uint8_t RCC_LSE) |
| Configures the External Low Speed oscillator (LSE). | |
| void | RCC_LSICmd (FunctionalState NewState) |
| Enables or disables the Internal Low Speed oscillator (LSI). | |
| void | RCC_PLLConfig (uint8_t RCC_PLLSource, uint8_t RCC_PLLMul, uint8_t RCC_PLLDiv) |
| Configures the PLL clock source and multiplication factor. | |
| void | RCC_PLLCmd (FunctionalState NewState) |
| Enables or disables the main PLL. | |
| void | RCC_ClockSecuritySystemCmd (FunctionalState NewState) |
| Enables or disables the Clock Security System. | |
| void | RCC_MCOConfig (uint8_t RCC_MCOSource, uint8_t RCC_MCODiv) |
| Selects the clock source to output on MCO pin (PA8). | |
| void | RCC_SYSCLKConfig (uint32_t RCC_SYSCLKSource) |
| Configures the system clock (SYSCLK). | |
| uint8_t | RCC_GetSYSCLKSource (void) |
| Returns the clock source used as system clock. | |
| void | RCC_HCLKConfig (uint32_t RCC_SYSCLK) |
| Configures the AHB clock (HCLK). | |
| void | RCC_PCLK1Config (uint32_t RCC_HCLK) |
| Configures the Low Speed APB clock (PCLK1). | |
| void | RCC_PCLK2Config (uint32_t RCC_HCLK) |
| Configures the High Speed APB clock (PCLK2). | |
| void | RCC_GetClocksFreq (RCC_ClocksTypeDef *RCC_Clocks) |
| Returns the frequencies of different on chip clocks; SYSCLK, HCLK, PCLK1 and PCLK2. | |
| void | RCC_RTCCLKConfig (uint32_t RCC_RTCCLKSource) |
| Configures the RTC clock (RTCCLK). | |
| void | RCC_RTCCLKCmd (FunctionalState NewState) |
| Enables or disables the RTC clock. | |
| void | RCC_RTCResetCmd (FunctionalState NewState) |
| Forces or releases the RTC peripheral and associated resources reset. | |
| void | RCC_AHBPeriphClockCmd (uint32_t RCC_AHBPeriph, FunctionalState NewState) |
| Enables or disables the AHB peripheral clock. | |
| void | RCC_APB2PeriphClockCmd (uint32_t RCC_APB2Periph, FunctionalState NewState) |
| Enables or disables the High Speed APB (APB2) peripheral clock. | |
| void | RCC_APB1PeriphClockCmd (uint32_t RCC_APB1Periph, FunctionalState NewState) |
| Enables or disables the Low Speed APB (APB1) peripheral clock. | |
| void | RCC_AHBPeriphResetCmd (uint32_t RCC_AHBPeriph, FunctionalState NewState) |
| Forces or releases AHB peripheral reset. | |
| void | RCC_APB2PeriphResetCmd (uint32_t RCC_APB2Periph, FunctionalState NewState) |
| Forces or releases High Speed APB (APB2) peripheral reset. | |
| void | RCC_APB1PeriphResetCmd (uint32_t RCC_APB1Periph, FunctionalState NewState) |
| Forces or releases Low Speed APB (APB1) peripheral reset. | |
| void | RCC_AHBPeriphClockLPModeCmd (uint32_t RCC_AHBPeriph, FunctionalState NewState) |
| Enables or disables the AHB peripheral clock during SLEEP mode. | |
| void | RCC_APB2PeriphClockLPModeCmd (uint32_t RCC_APB2Periph, FunctionalState NewState) |
| Enables or disables the APB2 peripheral clock during Low Power (Sleep) mode. | |
| void | RCC_APB1PeriphClockLPModeCmd (uint32_t RCC_APB1Periph, FunctionalState NewState) |
| Enables or disables the APB1 peripheral clock during Low Power (Sleep) mode. | |
| void | RCC_ITConfig (uint8_t RCC_IT, FunctionalState NewState) |
| Enables or disables the specified RCC interrupts. | |
| FlagStatus | RCC_GetFlagStatus (uint8_t RCC_FLAG) |
| Checks whether the specified RCC flag is set or not. | |
| void | RCC_ClearFlag (void) |
| Clears the RCC reset flags. The reset flags are: RCC_FLAG_PINRST, RCC_FLAG_PORRST, RCC_FLAG_SFTRST, RCC_FLAG_IWDGRST, RCC_FLAG_WWDGRST, RCC_FLAG_LPWRRST. | |
| ITStatus | RCC_GetITStatus (uint8_t RCC_IT) |
| Checks whether the specified RCC interrupt has occurred or not. | |
| void | RCC_ClearITPendingBit (uint8_t RCC_IT) |
| Clears the RCC's interrupt pending bits. | |
This file provides firmware functions to manage the following functionalities of the Reset and clock control (RCC) peripheral:
* * =================================================================== * RCC specific features * =================================================================== * * After reset the device is running from MSI (2 MHz) with Flash 0 WS, * all peripherals are off except internal SRAM, Flash and JTAG. * - There is no prescaler on High speed (AHB) and Low speed (APB) busses; * all peripherals mapped on these busses are running at MSI speed. * - The clock for all peripherals is switched off, except the SRAM and FLASH. * - All GPIOs are in input floating state, except the JTAG pins which * are assigned to be used for debug purpose. * * Once the device started from reset, the user application has to: * - Configure the clock source to be used to drive the System clock * (if the application needs higher frequency/performance) * - Configure the System clock frequency and Flash settings * - Configure the AHB and APB busses prescalers * - Enable the clock for the peripheral(s) to be used * - Configure the clock source(s) for peripherals whose clocks are not * derived from the System clock (ADC, RTC/LCD and IWDG) * *
THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
| #define assert_param NUTASSERT |