CH582-2-系统时钟配置初探
在官网的例程中,一般main函数前面都有一句:
SetSysClock(CLK_SOURCE_PLL_60MHz);
那么这个函数到底做了什么呢?是真的把时钟设置为60MHz了吗,我们打开源码看一下:
首先看看参数:
/**
* @brief 系统主频定义
*/
typedef enum
{
CLK_SOURCE_LSI = 0x00,
CLK_SOURCE_LSE,
CLK_SOURCE_HSE_16MHz = 0x22,
CLK_SOURCE_HSE_8MHz = 0x24,
......此处省略
CLK_SOURCE_PLL_80MHz = 0x46,
CLK_SOURCE_PLL_60MHz = 0x48,
......此处省略
} SYS_CLKTypeDef;
然后是主函数,具体细节已经注释:
/*********************************************************************
* @fn SetSysClock
*
* @brief 配置系统运行时钟
*
* @param sc - 系统时钟源选择 refer to SYS_CLKTypeDef
*
* @return none
*/
__HIGH_CODE /*__HIGH_CODE意为将代码下载到ram里运行 */
void SetSysClock(SYS_CLKTypeDef sc)
{
uint32_t i;
/*
* 对 R8_SAFE_ACCESS_SIG 寄存器的操作就是开关安全模式,下面是手册里的解释&#x