STM32F1笔记(八)时钟
STM32有五種時(shí)鐘源
1、HSI。高速內(nèi)部時(shí)鐘,RC振蕩器,頻率為8MHz。
2、HSE。高速外部時(shí)鐘,可接石英/陶瓷諧振器,或者借外部時(shí)鐘源,頻率范圍為4MHz~16MHz。
3、PLL。鎖相環(huán)倍頻輸出,其時(shí)鐘輸入源可選擇為HSI/2、HSE或者HSE/2。倍頻可選擇2~16倍,其輸出頻率最大不能超過(guò)72MHz(STM32F1)。
4、LSI。低速內(nèi)部時(shí)鐘,RC振蕩器,頻率為40KHz。獨(dú)立看門(mén)狗的時(shí)鐘源只能是LSI,同事LSI還可以作為RTC的時(shí)鐘源。
5、LSE。低速外部時(shí)鐘,接頻率為32.768KHz的石英晶體。這個(gè)主要是RTC的時(shí)鐘源。
?
時(shí)鐘樹(shù)如下圖
?
?時(shí)鐘的配置可使用STM32CubeMX來(lái)作為參考
從配置圖可觀察到,當(dāng)外部時(shí)鐘源為8M時(shí),通過(guò)PLL9倍倍頻 后得到72M,即SYSCLK為72M。
其中需要注意的是,APB1上連接的是低速外設(shè),最大時(shí)鐘為36M;
APB2上連接的是高速外設(shè),最大時(shí)鐘為72M。
兩者連接的定時(shí)器時(shí)鐘都為72M。
?
系統(tǒng)時(shí)鐘配置函數(shù)是system_stm32f10x.c中的SystemInit(),它調(diào)用了SetSysClock();
/*** @brief Configures the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers.* @param None* @retval None*/ static void SetSysClock(void) { #ifdef SYSCLK_FREQ_HSESetSysClockToHSE(); #elif defined SYSCLK_FREQ_24MHzSetSysClockTo24(); #elif defined SYSCLK_FREQ_36MHzSetSysClockTo36(); #elif defined SYSCLK_FREQ_48MHzSetSysClockTo48(); #elif defined SYSCLK_FREQ_56MHzSetSysClockTo56(); #elif defined SYSCLK_FREQ_72MHzSetSysClockTo72(); #endif/* If none of the define above is enabled, the HSI is used as System clocksource (default after reset) */ }可以看出可以通過(guò)宏定義來(lái)配置系統(tǒng)時(shí)鐘為多少。同時(shí)最后的注釋告訴我們,如果沒(méi)有任何HSE的宏定義被使能,HSI將被用為系統(tǒng)時(shí)鐘源。
例如72M的時(shí)鐘
#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL) /* #define SYSCLK_FREQ_HSE HSE_VALUE */#define SYSCLK_FREQ_24MHz 24000000 #else /* #define SYSCLK_FREQ_HSE HSE_VALUE */ /* #define SYSCLK_FREQ_24MHz 24000000 */ /* #define SYSCLK_FREQ_36MHz 36000000 */ /* #define SYSCLK_FREQ_48MHz 48000000 */ /* #define SYSCLK_FREQ_56MHz 56000000 */ #define SYSCLK_FREQ_72MHz 72000000 #endif?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的STM32F1笔记(八)时钟的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 检查不孕不育去安阳哪家医院好
- 下一篇: 毛坯房装修多少钱一平啊?
