在STM32中,可以用內(nèi)部時鐘,也可以用外部時鐘,在要求進度高的應(yīng)用場合最好用外部晶體震蕩器,內(nèi)部時鐘存在一定的精度誤差。
內(nèi)部時鐘有2個時鐘源可以選分別是HSI、LSI、(內(nèi)部高速,內(nèi)部低速,),高速時鐘主要用于系統(tǒng)內(nèi)核和總線上的外設(shè)時鐘。低速時鐘主要用于獨立看門狗IWDG、實時時鐘RTC。
1、HSI是高速內(nèi)部時鐘,RC振蕩器,頻率為8MHz,上電后默認的系統(tǒng)時時鐘 SYSCLK = 8MHz,F(xiàn)lash編程時鐘。
2、LSI是低速內(nèi)部時鐘,RC振蕩器,頻率為40kHz,可用于獨立看門狗IWDG、實時時鐘RTC。
使用時需要注意 注釋掉這個SystemInit(); 時鐘配置函數(shù)
//配置內(nèi)置振蕩器 36MHz
RCC_DeInit(); /*將外設(shè)RCC寄存器重設(shè)為缺省值 */
RCC_HSICmd(ENABLE); //使能內(nèi)部時鐘 HSI
while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY)== RESET);//等待HSI就緒
RCC_HCLKConfig(RCC_SYSCLK_Div1); /*設(shè)置AHB時鐘(HCLK) RCC_SYSCLK_Div1——AHB時鐘 = 系統(tǒng)時*/
RCC_PCLK2Config(RCC_HCLK_Div1); /* 設(shè)置高速AHB時鐘(PCLK2)RCC_HCLK_Div1——APB2時鐘 = HCLK*/
RCC_PCLK1Config(RCC_HCLK_Div2); /*設(shè)置低速AHB時鐘(PCLK1)RCC_HCLK_Div2——APB1時鐘 = HCLK / 2*/
//下面這語句設(shè)置時鐘頻率 記住參考
RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_9);/*設(shè)置PLL時鐘源及倍頻系數(shù),頻率為8/2*9=36Mhz*/
RCC_PLLCmd(ENABLE); /*使能PLL *///這里使用的內(nèi)部時鐘所以不能被 失能
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) ; /*檢查指定的RCC標志位(PLL準備好標志)設(shè)置與否 等待是否配置成功*/
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /*設(shè)置系統(tǒng)時鐘(SYSCLK) */
//選擇哪一個做為時鐘
0x00:HSI 作為系統(tǒng)時鐘 RCC_SYSCLKSource_HSI
// 0x04:HSE作為系統(tǒng)時鐘 RCC_SYSCLKSource_HSE
// 0x08:PLL作為系統(tǒng)時鐘 RCC_SYSCLKSource_PLLCLK
while(RCC_GetSYSCLKSource() != 0x08);//需與被選擇的系統(tǒng)時鐘對應(yīng)起來,RCC_SYSCLKSource_PLL
整合自:CSDN、博客園
編輯:jq
-
STM32
+關(guān)注
關(guān)注
2309文章
11162瀏覽量
373479
發(fā)布評論請先 登錄
LAT1215+如何讓 STM32WB 在沒有 LSE 時運行 BLE 應(yīng)用程序
CW32系列微控制器的時鐘源和定時器選項介紹
Proteus中配置STM32外部時鐘HSE如何配置
怎么判斷我現(xiàn)在用的是外部時鐘還是內(nèi)部時鐘呢?
?CDC1104 1至4可配置時鐘緩沖器技術(shù)文檔摘要
瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南(29)CGC(時鐘生成電路)時鐘控制
stm32內(nèi)部時鐘有哪些時鐘源 stm32使用內(nèi)部時鐘配置教程
評論