CLK_ICKR=0x08;
/* Configure clock prescaler */
CLK_CKDIVR = 0x01;
/*分频时钟源
*/
/* To select external source by automtic switch */
CLK_ICKR |= 0x10;
/* 使能转化 */
CLK_SWR
= 0xD2;
/* 时钟源选择 选择HSE*/
while (!(CLK_ICKR & 0x10));
/* 等待直到转换完成 */
if (CLK_CMSR != 0xD4)
检测是不是配置的时钟源
while(1);
void CLK_LSI(void)
{
CLK_SWCR |= 0x02; /* 使能转化 */
CLK_SWR = 0xD2; /* 时钟源选择 选择LSE*/
while (!(CLK_SWCR & 0x08)); /* 等待直到转换完成 */
CLK_CKDIVR = 0;
CLK_ICKR &= ~BIT(0);
}
void CLK_HSI(void)
{
CLK_SWCR |= 0x02; /* 使能转化 */
CLK_SWR = 0xE1; /* 时钟源选择 选择HSE*/
while (!(CLK_SWCR & 0x08)); /* 等待直到转换完成 */
CLK_CKDIVR = 0;
CLK_ICKR &= ~BIT(3);
}
注意用LSI要修改选项字节
如果需要将LSI作为主时钟源是需要先打开Option Bytes的LSI_EN选项的。