103 lines
3.4 KiB
C
103 lines
3.4 KiB
C
/*
|
|
|
|
system_stm32f10x.h - This provides system clock functions and an exported
|
|
variable for System init and clock configuration.
|
|
includes:
|
|
SystemInit, SystemCoreClockUpdate,
|
|
|
|
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_system_h__
|
|
#define __stm32f10x_system_h__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "stm32f10x.h"
|
|
|
|
|
|
/*!< Uncomment the line corresponding to the desired System clock (SYSCLK)
|
|
frequency (after reset the HSI is used as SYSCLK source)
|
|
|
|
IMPORTANT NOTE:
|
|
==============
|
|
1. After each device reset the HSI is used as System clock source.
|
|
|
|
2. Please make sure that the selected System clock doesn't exceed your device's
|
|
maximum frequency.
|
|
|
|
3. If none of the define below is enabled, the HSI is used as System clock
|
|
source.
|
|
|
|
4. The System clock configuration functions provided within this file assume that:
|
|
- For Low, Medium and High density Value line devices an external 8MHz
|
|
crystal is used to drive the System clock.
|
|
- For Low, Medium and High density devices an external 8MHz crystal is
|
|
used to drive the System clock.
|
|
- For Connectivity line devices an external 25MHz crystal is used to drive
|
|
the System clock.
|
|
If you are using different crystal you have to adapt those functions accordingly.
|
|
*/
|
|
|
|
#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
|
|
/* #define SYSCLK_FREQ_HSE HSE_VALUE */
|
|
#define SYSCLK_FREQ_24MHz 24000000
|
|
#else
|
|
/* #define SYSCLK_FREQ_HSE HSE_VALUE */
|
|
/* #define SYSCLK_FREQ_24MHz 24000000 */
|
|
/* #define SYSCLK_FREQ_36MHz 36000000 */
|
|
/* #define SYSCLK_FREQ_48MHz 48000000 */
|
|
/* #define SYSCLK_FREQ_56MHz 56000000 */
|
|
#define SYSCLK_FREQ_72MHz 72000000
|
|
#endif
|
|
|
|
/*!< Uncomment the following line if you need to use external SRAM mounted
|
|
on STM3210E-EVAL board (STM32 High density and XL-density devices) or on
|
|
STM32100E-EVAL board (STM32 High-density value line devices) as data memory */
|
|
#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL)
|
|
/* #define DATA_IN_ExtSRAM */
|
|
#endif
|
|
|
|
/*!< Uncomment the following line if you need to relocate your vector Table in
|
|
Internal SRAM. */
|
|
/* #define VECT_TAB_SRAM */
|
|
#define VECT_TAB_OFFSET 0x0 /*!< Vector Table base offset field.
|
|
This value must be a multiple of 0x200. */
|
|
|
|
#ifdef __cplusplus
|
|
extern
|
|
#endif
|
|
uint32_t SystemCoreClock; /*!< System Clock Frequency (Core Clock) */
|
|
|
|
void SystemInit(void);
|
|
void SystemCoreClockUpdate(void);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif //#ifndef __stm32f10x_system_h__
|
|
|
|
|