83 lines
2.2 KiB
C
83 lines
2.2 KiB
C
#include "../main/SystemInclude.h"
|
||
|
||
|
||
/**
|
||
* @brief 系统时钟初始化函数
|
||
* @note 配置芯片时钟树,使用内部高速时钟(HSI) 16MHz 作为系统时钟源,
|
||
* HCLK = 4MHz,APB1/APB2 时钟均等于 HCLK。
|
||
* @param 无
|
||
* @example SystemClockConfiguration();
|
||
*/
|
||
void SystemClockConfiguration(void)
|
||
{
|
||
RCC_ClockInitTypeDef Clock_InitStructure;
|
||
Clock_InitStructure.SYSCLKSource = RCC_SYSCLK_SRC_HSI_DIV2; // SYSCLK = 32M/2 = 16MHz
|
||
Clock_InitStructure.AHBCLKDivider = RCC_SYSCLK_DIV4; // PCLK = SYSCLK/4 = 4MHz
|
||
Clock_InitStructure.APB1CLKDivider = RCC_HCLK_DIV1; // PCLK1 = HCLK
|
||
Clock_InitStructure.APB2CLKDivider = RCC_HCLK_DIV1; // PCKL2 = HCLK
|
||
if (LHL_RCC_ClockConfig(&Clock_InitStructure, LHL_NRM_TIMEOUT) != LHL_OK)
|
||
{
|
||
while(1); // Error Handler
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @brief 时钟输出(MCO)初始化函数
|
||
* @note 配置 P0.4 引脚为 ECLKOUT 功能,输出所选时钟源信号,
|
||
* 当前使用 PCLK1 作为 MCO 输出时钟源。
|
||
* @param 无
|
||
* @example System_MCO_Config();
|
||
*/
|
||
void System_MCO_Config(void)
|
||
{
|
||
GPIO_InitTypeDef GPIO_InitStruct;
|
||
#if 0 //set p2.2 is MCO
|
||
GPIO_InitStruct.Pin = GPIO_PIN_2;
|
||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||
GPIO_InitStruct.Current = GPIO_CURRENT_16mA;
|
||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||
GPIO_InitStruct.SchmittTrigger = ENABLE;
|
||
GPIO_InitStruct.Alternate = GPIO2_2_AF_ECLKOUT; // AF为
|
||
LHL_GPIO_Init(pGPIO2, &GPIO_InitStruct);
|
||
|
||
#endif
|
||
#if 1 //set p0.4 is ECLKOUT
|
||
GPIO_InitStruct.Pin = GPIO_PIN_4;
|
||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||
GPIO_InitStruct.Current = GPIO_CURRENT_16mA;
|
||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||
GPIO_InitStruct.SchmittTrigger = ENABLE;
|
||
GPIO_InitStruct.Alternate = GPIO0_4_AF_ECLKOUT; // AF为
|
||
LHL_GPIO_Init(pGPIO0, &GPIO_InitStruct);
|
||
#endif
|
||
|
||
|
||
/** RCC_MCOSOURCE_LSI
|
||
* RCC_MCOSOURCE_SYSCLK
|
||
* RCC_MCOSOURCE_HSI
|
||
* RCC_MCOSOURCE_HSE
|
||
* RCC_MCOSOURCE_PLL_DIV2
|
||
* RCC_MCOSOURCE_PCLK1
|
||
* RCC_MCOSOURCE_PCLK2
|
||
* RCC_MCOSOURCE_HCLK */
|
||
LHL_RCC_MCOConfig(RCC_MCOSOURCE_PCLK1);//选择起始时钟源
|
||
}
|
||
|
||
|
||
|
||
|
||
void disable_interrupts(void)
|
||
{
|
||
// __disable_irq();
|
||
}
|
||
|
||
void enable_interrupts(void)
|
||
{
|
||
// __enable_irq();
|
||
}
|
||
|
||
void ResetSystem(void)
|
||
{
|
||
}
|
||
|