1.有多种可选的时钟源用来驱动系统时钟SYSCLK
• HSI 8 MHz RC oscillator clock 内部8M的HSI
• HSE oscillator clock 外接高速晶振
• PLL clock PLL时钟
• HSI48 48 MHz RC oscillator clock (available on STM32F04x, STM32F07x and STM32F09x devices only) 内部48M的HSI
2.另外还有几个时钟驱动其他
• 40 kHz low speed internal RC (LSI RC) which drives the independent watchdog and optionally the RTC used for Auto-wakeup from Stop/Standby mode. 独立看门狗
• 32.768 kHz low speed external crystal (LSE crystal) which optionally drives the realtime clock (RTCCLK) 外部
• 14 MHz high speed internal RC (HSI14) dedicated for ADC. HSI14驱动ADC
3.每种时钟源都可以独立的打开关闭,在不使用时,关闭他们可以降低功耗。
4.systemInit()函数的解释http://blog.csdn.net/abclixu123/article/details/8265250
5.MCO引脚PTA8/PTA9 通过MCO可以给别的芯片提供时钟,节省晶振。把内部系统时钟输出到引脚,好文http://www.cnblogs.com/zyqgold/archive/2012/04/30/2477383.html
6.独立看门狗程序
void IndependentWDInit(uint16_t timeMS) { //独立看门设置,如果独立看门狗有软件或者硬件启用,那么LSI会强制打开 IWDG->KR = 0x5555; //使能写入PR和RLR IWDG->PR = 0x03; //写入PR预分频值 011对应32分频 IWDG->RLR = timeMS*5/4; //独立看门狗使用40KHz LSI 写入RLR IWDG->KR = 0xAAAA; //将IW_RLR的设置值刷新到看门狗定时器 IWDG->KR = 0xCCCC; //使能独立看门狗 } void IWDGReloadCounter(void) { //喂狗 IWDG->KR = 0xAAAA; }