STM32入門筆記(1)——時鐘
1.HSI高速內(nèi)部時鐘,RC震蕩器,頻率為8MHz。
本文引用地址:http://m.butianyuan.cn/article/201611/320429.htm2.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口。
- //系統(tǒng)時鐘初始化函數(shù)
- //pll:選擇的倍頻數(shù),從2開始,最大值為16
- voidStm32_Clock_Init(u8PLL)
- {
- unsignedchartemp=0;
- MYRCC_DeInit();//復位并配置向量表
- RCC->CR|=0x00010000;//外部高速時鐘使能HSEON
- while(!(RCC->CR>>17));//等待外部時鐘就緒
- RCC->CFGR=0X00000400;//APB1=DIV2;APB2=DIV1;AHB=DIV1;
- PLL-=2;//抵消2個單位
- RCC->CFGR|=PLL<<18;//設置PLL值2~16
- RCC->CFGR|=1<<16;//PLLSRCON
- FLASH->ACR|=0x32;//FLASH2個延時周期
- RCC->CR|=0x01000000;//PLLON
- while(!(RCC->CR>>25));//等待PLL鎖定
- RCC->CFGR|=0x00000002;//PLL作為系統(tǒng)時鐘
- while(temp!=0x02)//等待PLL作為系統(tǒng)時鐘設置成功
- {
- temp=RCC->CFGR>>2;
- temp&=0x03;
- }
- }
評論