STM8 时钟修改
<tbody></tbody>
对STM8的时钟修改,并用LED进行显示,观察LED的闪烁速度是否有变化。 | |
---|---|
<tbody></tbody>
| |
<tbody></tbody>
/********************************************************************* 微 雪 电 子 WaveShare <a class="Blue_2_12px_" href="http://wiki.diustou.com/" style="color: rgb(7, 66, 184);">http://www.waveShare.net 目标系统: 基于STM8单片机 应用软件: Cosmic CxSTM8 说 明: 若用于商业用途,请保留此段文字或注明代码来源 深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权
void Init_GPIO(void) { PB_DDR = 0x0d; PB_CR1 = 0x0d; PB_CR2 = 0x00; } void delay_ms(unsigned int ms) { unsigned char i; while(ms!=0) { for(i=0;i<250;i++) {} for(i=0;i<75;i++) {} ms--; } } void main(void) { unsigned char i; Init_GPIO(); while (1) { //启用内部高速晶振且无分频16MHz CLK_SWCR|=0x02; //开启切换 CLK_SWR=0xe1; while((CLK_SWCR & 0x01)==0x01); CLK_CKDIVR=0x00; CLK_SWCR&=(~0x02); //关闭切换 for(i=0;i<10;i++) { LED_PORT=0xff; delay_ms(500); LED_PORT=(~0xff); delay_ms(500); } //启用内部高速晶振且8分频(内部始终分频)2MHz CLK_CKDIVR=0x18; for(i=0;i<5;i++) { LED_PORT=0xff; delay_ms(500); LED_PORT=(~0xff); delay_ms(500); } //启用外部高速晶振且16分频500KHz CLK_SWCR|=0x02; //开启切换 CLK_SWR=0xb4; while((CLK_SWCR & 0x01)==0x01); CLK_CKDIVR=0x04; CLK_SWCR&=(~0x02); //关闭切换 for(i=0;i<5;i++) { LED_PORT=0xff; delay_ms(500); LED_PORT=(~0xff); delay_ms(500); } //启用内部低速晶振且无分频 CLK_SWCR|=0x02; //开启切换 CLK_ICKR|=0x08; //使能内部低速晶振 CLK_SWR=0xd2; while((CLK_SWCR & 0x01)==0x01); CLK_CKDIVR=0x00; CLK_SWCR&=(~0x02); //关闭切换 for(i=0;i<5;i++) { LED_PORT=0xff; delay_ms(500); LED_PORT=(~0xff); delay_ms(500); } } } | |
<tbody></tbody>
|