日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]一、在STM32中,有5個(gè)時(shí)鐘源,為HSI,HSE,LSI,LSE,PLL.①HSI是高速內(nèi)部時(shí)鐘,RC振蕩器,頻率為8MHz;②HSE--高速外部時(shí)鐘,可接石英或者陶瓷諧振器,或者外部時(shí)鐘源,頻率范圍4MHz--15MHz.③LSI--低速內(nèi)部時(shí)鐘,RC 振蕩

一、在STM32中,有5個(gè)時(shí)鐘源,為HSI,HSE,LSI,LSE,PLL.

①HSI是高速內(nèi)部時(shí)鐘,RC振蕩器,頻率為8MHz;

②HSE--高速外部時(shí)鐘,可接石英或者陶瓷諧振器,或者外部時(shí)鐘源,頻率范圍4MHz--15MHz.

③LSI--低速內(nèi)部時(shí)鐘,RC 振蕩器,頻率為40kHz.

④LSE--低速外部時(shí)鐘,接頻率為32.768KHz的石英晶體。

⑤PLL為鎖相環(huán)倍頻輸出,其時(shí)鐘輸入源可選擇為HSI/2,HSE或者HSE/2,倍頻可選擇為2--16倍,但是其輸出頻率最大不得超過72MHz.

下圖為STM32的時(shí)鐘樹。(圖1)


圖1

AHB (最大72M)

APB1 (最大36M): DAC, PWR, BKP, CAN, SRAM, I2C, USART2~5, SPI2/3, RTC, TIM2~7

APB2 (最大72M): ADC, SPI1, TIM1/8, GPIOA~F, EXTI, AFIO ,USART1

具體在RCC_Configuration函數(shù)中的體現(xiàn)。

第一步:系統(tǒng)時(shí)鐘選擇哪個(gè),HSE、HSI還是PLLCLK。

RCC_HSEConfig(RCC_HSE_ON);//使用HSE

如果HSE時(shí)鐘已經(jīng)穩(wěn)定,硬件會(huì)將RCC_CR的HSERDY位置1。

第二步:判斷HSE時(shí)鐘是否穩(wěn)定

if(RCC_WaitForHSEStartUp()==SUCCESS)//SUCCESS的含義要提前定義

第三步:使能FLASH的預(yù)取址緩沖區(qū),并設(shè)置FLASH的等待狀態(tài)。(具體功能見FLASH部分)

FLASH_SetLatency(FLASH_Latency_2);//flash2等待狀態(tài),操作的一個(gè)延時(shí)

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//Flash讀取緩沖,加速

第四步:設(shè)置AHB預(yù)分頻系數(shù)。預(yù)分頻系數(shù)可以是1、2、4、8、16、32、64、128、256;)(圖2)

圖2

RCC_HCLKConfig(RCC_SYSCLK_Div1);//AHB使用系統(tǒng)時(shí)鐘//HCLK = SYSCLK

第五步:設(shè)置APB2的預(yù)分頻系數(shù),來確定PCLK2頻率。預(yù)分頻系數(shù)可以是1、2、4、8、16

RCC_PCLK2Config(RCC_HCLK_Div1);//APB2為HCLK/1//PCLK2 = HCLK/1

第六步:設(shè)置APB1的預(yù)分頻系數(shù),來確定PCLK1頻率。預(yù)分頻系數(shù)可以是1、2、4、8、16

RCC_PCLK1Config(RCC_HCLK_Div2);//APB1為HCLK/2//PCLK1 = HCLK/2

第七步:設(shè)置PLL的時(shí)鐘源,以及PLL的倍頻系數(shù),來確定PLLCLK頻率。(圖3)

圖3

RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//PLLCLK = 8MHz * 9 =72MHz

第八步:使能PLL。將RCC_CR的PLLON位置1。

RCC_PLLCmd(ENABLE);//啟動(dòng)PLL //EnablePLL
如果PLL鎖定后,硬件會(huì)將RCC_CR的PLLRDY位置1。

第九步:等待PLL鎖定。

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) ==RESET); //等待PLL啟動(dòng)

第十步:選擇PLL作為SYSCLK(系統(tǒng)時(shí)鐘源)

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//將PLL設(shè)置為系統(tǒng)時(shí)鐘源

第十一步:等待系統(tǒng)時(shí)鐘源的啟動(dòng)

while(RCC_GetSYSCLKSource() != 0x08);//等待系統(tǒng)時(shí)鐘源的啟動(dòng)

第十二步:開啟要使用的外設(shè)時(shí)鐘

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//打開GPIOA時(shí)鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//打開GPIOC時(shí)鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//該引腳(TX)屬于復(fù)用功能引腳
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//打開USART1 時(shí)鐘

二、在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法,如果使用內(nèi)部RC振蕩器而不用外部晶振,請(qǐng)按照下面方法處理,

①對(duì)于100腳或者144腳的產(chǎn)品,OSC_IN應(yīng)接地,OSC_OUT應(yīng)懸空;

②對(duì)于少于100腳的產(chǎn)品,有2種接法,第一種:OSC_IN和OSC_OUT分別通過10K電阻接地,此方法可以提高EMC性能,第二種:分別重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1為推挽輸出,并輸出0,此方法可以減小功耗并節(jié)省2個(gè)外部電阻。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉