实验平台:思修电子工作室"祥云小王子"开发版
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
if(CLK_CMSR!=0xB4)
//判断主时钟状态寄存器CLK_CMSR中的主时钟源是否是HSE
//若不是则进入if程序段
{
//1.首先要配置时钟切换使能位SWEN=1,使能切换过程
CLK_SWCR|=0x02;//展开为二进制0000 0010 SWEN位=1
//2.选择主时钟源,对主时钟切换寄存器CLK_SWR写入欲切换时钟
CLK_SWR=0xB4;//配置CLK_CMSR中的主时钟源为HSE
//3.等待时钟切换控制寄存器CLK_SWCR中的切换中断标志位SWIF=1
while((CLK_SWCR & 0x08)==0);
//4.清除相关标志位
CLK_SWCR=0;
}
//************************************************************
led();//图10.9所示【A】区域电平状态
//************************************************************
//************HSE->HSI时钟自动切换流程及注释说明************
//如果CLK_CMSR中的主时钟源为HSI,则CLK_CMSR=0xE1
//如果CLK_CMSR中的主时钟源为LSI,则CLK_CMSR=0xD2
//如果CLK_CMSR中的主时钟源为HSE,则CLK_CMSR=0xB4
if(CLK_CMSR!=0xE1)
//判断主时钟状态寄存器CLK_CMSR中的主时钟源是否是HSI
//若不是则进入if程序段
{
//1.首先要配置时钟切换使能位SWEN=1,使能切换过程
CLK_SWCR|=0x02;//展开为二进制0000 0010 SWEN位=1
//2.选择主时钟源,对主时钟切换寄存器CLK_SWR写入欲切换时钟
CLK_SWR=0xE1;//配置CLK_CMSR中的主时钟源为HSI
//3.等待时钟切换控制寄存器CLK_SWCR中的切换中断标志位SWIF=1
while((CLK_SWCR & 0x08)==0);
//4.清除相关标志位
CLK_SWCR=0;
}
//************************************************************
led();//图10.9所示【B】区域电平状态
//************************************************************
}
}
上一篇:STM8L在使用模拟IIC编程时遇到__iar_unhandled_exception的问题
下一篇:HR202湿敏电阻总结与程序整理
推荐阅读最新更新时间:2024-11-02 13:12