实验平台:思修电子工作室"祥云小王子"开发版
int main(void)
{
PI_DDR_DDR0=1;//配置PI0端口为输出模式
PI_CR1_C10=1; //配置PI0端口为推挽输出模式
PI_CR2_C20=0; //配置PI0端口低速率输出
led1=1; //PI0输出为高电平,D1熄灭
while(1)
{
//************HSI->HSE时钟手动切换流程及注释说明************
//如果CLK_CMSR中的主时钟源为HSI,则CLK_CMSR=0xE1
//如果CLK_CMSR中的主时钟源为LSI,则CLK_CMSR=0xD2
//如果CLK_CMSR中的主时钟源为HSE,则CLK_CMSR=0xB4
//1.首先开启时钟切换中断使能,也就是时钟切换寄存器CLK_SWCR中的SWIEN=1
CLK_SWCR|=0x04;
//2.选择主时钟源,对主时钟切换寄存器CLK_SWR写入欲切换时钟
CLK_SWR=0xB4;//配置CLK_CMSR中的主时钟源为HSE
//3.开启全局中断
asm("rim");
//************************************************************
led();//图10.13所示【A】区域电平状态
//************************************************************
//************HSE->HSI时钟手动切换流程及注释说明************
//如果CLK_CMSR中的主时钟源为HSI,则CLK_CMSR=0xE1
//如果CLK_CMSR中的主时钟源为LSI,则CLK_CMSR=0xD2
//如果CLK_CMSR中的主时钟源为HSE,则CLK_CMSR=0xB4
//1.首先开启时钟切换中断使能,也就是时钟切换寄存器CLK_SWCR中的SWIEN=1
CLK_SWCR|=0x04;
//2.选择主时钟源,对主时钟切换寄存器CLK_SWR写入欲切换时钟
CLK_SWR=0xE1;//配置CLK_CMSR中的主时钟源为HSI
//3.开启全局中断
asm("rim");
//************************************************************
//CLK_CKDIVR=(u8)0x10;//用户调整HSI时钟源分频因子
//************************************************************
led();//图10.13所示【B】区域电平状态
//************************************************************
}
}
//************************中断函数区域****************************
#pragma vector=4
__interrupt void CLK_IRQHandler(void)//时钟源切换中断函数
{
CLK_SWCR &= 0xF7;//清除SWIF中断标志位
CLK_SWCR |= 0x02;//对SWEN位置“1”,启动切换
}
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』