2026-03-20 21:16:58 +08:00
|
|
|
|
#include "../main/SystemInclude.h"
|
|
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* @brief ϵͳʱ<EFBFBD>ӳ<EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* @note <EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>(HSI)<EFBFBD><EFBFBD>Ϊϵͳʱ<EFBFBD><EFBFBD>Դ
|
|
|
|
|
|
*/
|
2026-03-20 21:16:58 +08:00
|
|
|
|
void SystemClockConfiguration(void)
|
2026-03-20 21:19:04 +08:00
|
|
|
|
{
|
|
|
|
|
|
RCC_ClockInitTypeDef Clock_InitStructure;
|
|
|
|
|
|
Clock_InitStructure.SYSCLKSource = RCC_SYSCLK_SRC_HSI_DIV2; // SYSCLK = 32M/2 = 16MHz
|
|
|
|
|
|
Clock_InitStructure.AHBCLKDivider = RCC_SYSCLK_DIV2; // 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
|
|
|
|
|
|
}
|
2026-03-20 21:16:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
|
2026-03-20 21:16:58 +08:00
|
|
|
|
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);//ѡ<><D1A1><EFBFBD><EFBFBD>ʼʱ<CABC><CAB1>Դ
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-03-20 21:16:58 +08:00
|
|
|
|
|
|
|
|
|
|
void disable_interrupts(void)
|
|
|
|
|
|
{
|
2026-03-20 21:19:04 +08:00
|
|
|
|
__disable_irq();
|
2026-03-20 21:16:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void enable_interrupts(void)
|
|
|
|
|
|
{
|
2026-03-20 21:19:04 +08:00
|
|
|
|
__enable_irq();
|
2026-03-20 21:16:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void ResetSystem(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|