新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32入門筆記(1)——時鐘

STM32入門筆記(1)——時鐘

作者: 時間:2016-11-23 來源:網(wǎng)絡 收藏
STM32中使用任何一個外設都必須打開相應的時鐘。在STM32中有5個時鐘源可供用戶選擇:

1.HSI高速內(nèi)部時鐘,RC震蕩器,頻率為8MHz。

本文引用地址:http://m.butianyuan.cn/article/201611/320429.htm

2.HSE高速外部時鐘,右英/陶瓷諧振器,或著外部時鐘源,4MHz-16MHz.

3.LSI內(nèi)部低速時鐘,RC震蕩器頻率為40Hz。

4.LSE外部低速時鐘,接頻率為32.768KHz的石英晶體。

5.PLL鎖相環(huán)頻輸出,時鐘源可選為HIS/2、HSE或HSE/2。倍頻可選2-16倍,但其輸出頻率最大不能超過72MHz。

系統(tǒng)時鐘SYSCLK,它是供STM32中絕大部分器件工作的時鐘源,系統(tǒng)時鐘可選擇為PLL輸出、HSI或者HSE。系統(tǒng)時鐘的做大頻率為72MHz,它通過AHB分頻器分頻后送給個模塊使用,AHB分頻器可選擇1、2...512分頻。AHB分頻器輸出的時鐘送給5大模塊使用:

1.送給AHB總線、內(nèi)核、內(nèi)存、DMA使用的HCLK時鐘。

2.通過8分頻送給系統(tǒng)定時器的定時時鐘(嘀嗒定時器)。

3.直接送給Cortex的空閑時鐘PCLK。

4.送給APB1分頻器可選擇1、2、4、8、16分頻,其輸出一路供APB1外設使用(PCLK1,最大頻率36M)另一路送給定時器(Timer)2、3、4倍頻器使用。該倍頻器可選擇1或著2倍頻,時鐘輸出供定時器2、3、4使用。

5.送給APB2分頻器可選擇1、2、4、8、16分頻,其輸出一路供APB2外設使用(PCLK2,最大頻率72M)另一路送給定時器(Timer)1倍頻器使用。該倍頻器可選擇1或著2倍頻。時鐘輸出供定時器1使用。另外,APB2分頻器還有一路輸出供ADC分頻器使用,分頻后送給ADC模塊使用。ADC分頻器可選 擇為2、4、6、8分頻。

連接在APB1(低速外設)上設備有:電源接口、備份接口、CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、窗口看門狗、TIMER2、TIMER3、TIMER4。

連接在APB2(高速外設)上設備有:UART1、SPI1、Timer1、ADC1、ADC2、所有普通IO口、第二功能IO口。

[cpp]view plaincopy
  1. //系統(tǒng)時鐘初始化函數(shù)
  2. //pll:選擇的倍頻數(shù),從2開始,最大值為16
  3. voidStm32_Clock_Init(u8PLL)
  4. {
  5. unsignedchartemp=0;
  6. MYRCC_DeInit();//復位并配置向量表
  7. RCC->CR|=0x00010000;//外部高速時鐘使能HSEON
  8. while(!(RCC->CR>>17));//等待外部時鐘就緒
  9. RCC->CFGR=0X00000400;//APB1=DIV2;APB2=DIV1;AHB=DIV1;
  10. PLL-=2;//抵消2個單位
  11. RCC->CFGR|=PLL<<18;//設置PLL值2~16
  12. RCC->CFGR|=1<<16;//PLLSRCON
  13. FLASH->ACR|=0x32;//FLASH2個延時周期
  14. RCC->CR|=0x01000000;//PLLON
  15. while(!(RCC->CR>>25));//等待PLL鎖定
  16. RCC->CFGR|=0x00000002;//PLL作為系統(tǒng)時鐘
  17. while(temp!=0x02)//等待PLL作為系統(tǒng)時鐘設置成功
  18. {
  19. temp=RCC->CFGR>>2;
  20. temp&=0x03;
  21. }
  22. }



關鍵詞: STM32入門筆記時

評論


技術專區(qū)

關閉