1.图13可见,STM8S单片机主要有四种时钟源可供选择:
1).1-24MHz外部晶体振荡器(HSE).
2).最大24MHz外部时钟(HSE ext).
3).16MHz高速内部RC振荡器(HSI).
4).128KHz低速内部RC振荡器(LSI).
2.主时钟可以从这四种时钟源中任意切换,切换过程可通过自动切换和手动切换。
自动切换过程:使能相应的时钟源,使能切换,等待切换完成。
例如:从HSI切换到外部HSE,子程序如下:
void CLKToHSE(void)
{
while(!(CLK_ECKR&0x02)); //等待HSE就绪
CLK_ECKR |= 0x01; //使能HSE
CLK_SWCR |= 0x20; //使能切换
CLK_SWR = 0xB4; // (0xE1----HSI )
// (0xD2 ----LSI)
//(0xB4----HSE)
while(!(CLK_SWCR&0x01)); //等待时钟切换完成
CLK_ICKR &= ~0x01; //关闭HSI
}
手动切换:
手动切换和自动切换差不多,只是要等待时钟稳定后进行切换。
例如,HSI切换至内部LSI,子程序如下:
void CLKToLSI(void)
{
while(!(CLK_ICKR&0x10)); //等待LSI就绪
CLK_ICKR |= 0x08; //使能LSI
CLK_SWR = 0xD2; // (0xE1----HSI)
// (0xD2 ----LSI)
// (0xB4----HSE)
while(!(CLK_SWCR&0x08));
CLK_SWCR |= 0x20; //使能切换
CLK_ICKR &= ~0x01; //关闭HSI
}
3.时钟分频
HSI可通过CLK_CKDIVR的HSIDIV[1:0]分频。可选择分频因子1,2,4,8。
CPU时钟又可以通过CLK_CKDIVR的CPUDIV[2:0]分频。可选择分频比1,2,4,8,16,32,64,128。
外设时钟可通过CLK_PCKENR1,CLK_PCKENR2选择使能或关闭,复位情况下默认外设时钟全部打开,不熟悉的情况下,可以选择默认,以防没有配置时钟而无法使用外设。关闭不必要的外设可以降低系统功耗。
另外还有时钟安全系统CSS,时钟输出,时钟中断,SWIM时钟控制,HSI时钟校准等,下次再讨论吧。
上一篇:STM8L时钟切换详解
下一篇:【STM8单片机】---时钟配置小感悟
推荐阅读最新更新时间:2024-11-11 02:52
设计资源 培训 开发板 精华推荐
- RH27C典型应用——精密运算放大器
- 负精密基准电压源的典型应用电路不使用精密电阻器
- 用于 48V、500W 电动自行车/踏板车的 LTC2992HMS 功率监视器的典型应用
- LTC4244 坚固型紧凑型 PCI 总线热插拔控制器的典型应用电路
- TB67S249FTG 时钟输入控制、2 相双极型步进电机驱动器评估板
- Si871xSOIC8-KIT、采用 SI8718 数字隔离器的 Si871x SOIC8 评估板
- STEVAL-MKI210V1K,基于 ISM330DHCX 的 iNemo 惯性模块套件
- 鱼缸补光增氧装置
- LT6656AIS6-2.048、2.048V 精密电流和升压基准电压源的典型应用
- 使用 Allegro MicroSystems 的 STR-A6159 的参考设计