STM32入門筆記(1)——時(shí)鐘
1.HSI高速內(nèi)部時(shí)鐘,RC震蕩器,頻率為8MHz。
本文引用地址:http://2s4d.com/article/201611/320429.htm2.HSE高速外部時(shí)鐘,右英/陶瓷諧振器,或著外部時(shí)鐘源,4MHz-16MHz.
3.LSI內(nèi)部低速時(shí)鐘,RC震蕩器頻率為40Hz。
4.LSE外部低速時(shí)鐘,接頻率為32.768KHz的石英晶體。
5.PLL鎖相環(huán)頻輸出,時(shí)鐘源可選為HIS/2、HSE或HSE/2。倍頻可選2-16倍,但其輸出頻率最大不能超過72MHz。
系統(tǒng)時(shí)鐘SYSCLK,它是供STM32中絕大部分器件工作的時(shí)鐘源,系統(tǒng)時(shí)鐘可選擇為PLL輸出、HSI或者HSE。系統(tǒng)時(shí)鐘的做大頻率為72MHz,它通過AHB分頻器分頻后送給個(gè)模塊使用,AHB分頻器可選擇1、2...512分頻。AHB分頻器輸出的時(shí)鐘送給5大模塊使用:
1.送給AHB總線、內(nèi)核、內(nèi)存、DMA使用的HCLK時(shí)鐘。
2.通過8分頻送給系統(tǒng)定時(shí)器的定時(shí)時(shí)鐘(嘀嗒定時(shí)器)。
3.直接送給Cortex的空閑時(shí)鐘PCLK。
4.送給APB1分頻器可選擇1、2、4、8、16分頻,其輸出一路供APB1外設(shè)使用(PCLK1,最大頻率36M)另一路送給定時(shí)器(Timer)2、3、4倍頻器使用。該倍頻器可選擇1或著2倍頻,時(shí)鐘輸出供定時(shí)器2、3、4使用。
5.送給APB2分頻器可選擇1、2、4、8、16分頻,其輸出一路供APB2外設(shè)使用(PCLK2,最大頻率72M)另一路送給定時(shí)器(Timer)1倍頻器使用。該倍頻器可選擇1或著2倍頻。時(shí)鐘輸出供定時(shí)器1使用。另外,APB2分頻器還有一路輸出供ADC分頻器使用,分頻后送給ADC模塊使用。ADC分頻器可選 擇為2、4、6、8分頻。
連接在APB1(低速外設(shè))上設(shè)備有:電源接口、備份接口、CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、窗口看門狗、TIMER2、TIMER3、TIMER4。
連接在APB2(高速外設(shè))上設(shè)備有:UART1、SPI1、Timer1、ADC1、ADC2、所有普通IO口、第二功能IO口。
- //系統(tǒng)時(shí)鐘初始化函數(shù)
- //pll:選擇的倍頻數(shù),從2開始,最大值為16
- voidStm32_Clock_Init(u8PLL)
- {
- unsignedchartemp=0;
- MYRCC_DeInit();//復(fù)位并配置向量表
- RCC->CR|=0x00010000;//外部高速時(shí)鐘使能HSEON
- while(!(RCC->CR>>17));//等待外部時(shí)鐘就緒
- RCC->CFGR=0X00000400;//APB1=DIV2;APB2=DIV1;AHB=DIV1;
- PLL-=2;//抵消2個(gè)單位
- RCC->CFGR|=PLL<<18;//設(shè)置PLL值2~16
- RCC->CFGR|=1<<16;//PLLSRCON
- FLASH->ACR|=0x32;//FLASH2個(gè)延時(shí)周期
- RCC->CR|=0x01000000;//PLLON
- while(!(RCC->CR>>25));//等待PLL鎖定
- RCC->CFGR|=0x00000002;//PLL作為系統(tǒng)時(shí)鐘
- while(temp!=0x02)//等待PLL作為系統(tǒng)時(shí)鐘設(shè)置成功
- {
- temp=RCC->CFGR>>2;
- temp&=0x03;
- }
- }
評論