|
- /*
-
- system_stm32f10x.h - This provides system clock functions and an exported
- variable for System init and clock configuration.
- includes:
- SystemInit, SystemInit_ExtMemCtl, Sys_Sysclk_Update, Sys_GetSysclk_src,
- Sys_SetSysclk_src, Sys_HSI_Cmd, Sys_HSE_Cmd, Sys_ExtClock_Cmd,
- Sys_PLL_Cmd, Sys_SetPLLClock
-
- Copyright (C) 2011 Houtouridis Christos (http://houtouridis.blogspot.com/)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- Author: Houtouridis Christos <houtouridis.ch@gmail.com>
- Date: 11/2011
- Version: 0.1
- */
-
- #ifndef __stm32f10x_clock_h__
- #define __stm32f10x_clock_h__
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #include <stm32f10x.h>
- #include "stm32f10x_assert.h"
-
- /* ================ User Defines ======================*/
-
- #define SYSTEM_STARTUP_TIMEOUT (0x500)
-
- /* ================ General Defines ======================*/
-
- #define SYSCLK_HSI_FREQ (8000000)
-
- #ifndef CLOCK
- #warning "CLOCK is not defined. Used 8000000 as default value"
- #define CLOCK (SYSCLK_HSI_FREQ)
- #endif
-
- #if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
- #define SYSTEM_MAX_CLK (24000000)
- #define SYSTEM_MIN_CLK (8000000)
- #elif defined (STM32F10X_MD)
- #define SYSTEM_MAX_CLK (32000000)
- #define SYSTEM_MIN_CLK (8000000)
- #elif defined (STM32F10X_HD)
- #define SYSTEM_MAX_CLK (36000000)
- //#define SYSTEM_MAX_CLK (48000000)
- //#define SYSTEM_MAX_CLK (72000000)
- #define SYSTEM_MIN_CLK (8000000)
- #endif
-
-
- typedef uint32_t CLK_t;
- typedef enum
- {
- // DO NOT change the numbers,
- //see STM Reference manual page 83
- HSI=0, HSE, PLLCLK
- }Sys_CLK_src_t;
-
- typedef enum
- {
- DIS=0, EN
- }Sys_FunctionalState_t;
-
- typedef enum
- {
- HSI_2=0, PREDIV
- }Sys_PLL_src_t;
-
- typedef enum
- {
- System_OK=0, System_ERROR
- }Sys_Exit_t;
-
-
-
-
-
-
- /* ================ Exported Functions ======================*/
-
- CLK_t Sys_Sysclk_Update (void);
-
-
- Sys_CLK_src_t Sys_GetSysclk_src (void);
- Sys_Exit_t Sys_SetSysclk_src (Sys_CLK_src_t cs);
-
- Sys_Exit_t Sys_HSI_Cmd (Sys_FunctionalState_t state);
- Sys_Exit_t Sys_HSE_Cmd (Sys_FunctionalState_t state);
- Sys_Exit_t Sys_ExtClock_Cmd (Sys_FunctionalState_t state);
- Sys_Exit_t Sys_PLL_Cmd (Sys_FunctionalState_t state);
- Sys_Exit_t Sys_SetPLLClock (CLK_t clk, Sys_PLL_src_t ps);
-
-
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif // #ifndef __stm32f10x_clock_h__
-
-
|