STM8内部时钟切换

来源:本站
导读:目前正在解读《STM8内部时钟切换》的相关信息,《STM8内部时钟切换》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《STM8内部时钟切换》的详细说明。
简介:在STM8内部有时钟切换功能,可以在需要时变换时钟的频率。板子为STM8_Discovery,LED为PD0。

程序如下:

//功能:STM8的内部时钟分频切换

#include "iostm8s105c6.h"

// 函数功能:延时函数

// 输入参数:ms -- 要延时的毫秒数,这里假设CPU的主频为2MHZ

void DelayMS(unsigned int ms)

{

unsigned char i;

while(ms != 0)

{

for(i=0;i<250;i++)

{

}

for(i=0;i<75;i++)

{

}

ms--;

}

}

//GPIO口初始化

void GPIO_init(void)

{

PD_DDR = 0x01;//配置PD端口的方向寄存器PD0输出

PD_CR1 = 0x01;//设置PD0为推挽输出

PD_CR2 = 0x00;

}

//时钟初始化

void CLK_init(void)

{

CLK_SWR =0xE1; //选择芯片内部的16MHZ的RC振荡器为主时钟

}

main()

{

int i;

GPIO_init();

CLK_init();

while(1) //进入无限循环

{

//下面设置CPU时钟分频器,使得CPU时钟=主时钟/4

//通过发光二极管,可以看出,程序运行的速度确实明显下降了

CLK_CKDIVR =0x1A; // 主时钟 = 16MHZ/8= 2MHz

// CPU时钟 = 主时钟 / 4= 500KHZ

for(i=0;i<10;i++)

{

PD_ODR = 0x01;

DelayMS(100);

PD_ODR = 0x00;

DelayMS(100);

}

// 下面设置CPU时钟分频器,使得CPU时钟=主时钟

CLK_CKDIVR =0x0A; // 主时钟 = 16MHZ/2 =8MHz

// CPU时钟 = 主时钟/4 = 2MHZ

for(i=0;i<10;i++)

{

PD_ODR = 0x01;

DelayMS(100);

PD_ODR = 0x00;

DelayMS(100);

}

}

}

提醒:《STM8内部时钟切换》最后刷新时间 2024-03-14 01:08:12,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《STM8内部时钟切换》该内容的真实性请自行鉴别。