STM8上电运行时默认使用内部16M的RC振荡器经8分频后的2M时钟频率作为系统时钟。程序开始运行后可以通过设置相关寄存器来修改主时钟源,可以选择外部晶振作为主时钟源和CPU时钟分频。那么这里就选择比较简单的操作,修改内部RC时钟预分频器获得8M系统时钟。
增加内部RC时钟预分频后的代码如下:
#i nclude #define LED1_FLASH PD_ODR_ODR3 = !PD_ODR_ODR3 // LED闪灯指示void delay(unsigned int count){ while(count--);}void CLK_init(void){ CLK_CKDIVR = 0x08; // 16M内部RC经2分频后系统时钟为8M}void GPIO_init(void){ PD_DDR = 0x08; // 配置PD端口的方向寄存器PD3输出 PD_CR1 = 0x08; // 设置PD3为推挽输出}void init_devices(void){ CLK_init(); GPIO_init();}void main( void ){ init_devices(); while(1) { delay(50000); LED1_FLASH; }}