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

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]一、系統(tǒng)時(shí)鐘配置STM32有多個(gè)時(shí)鐘源,分別是HSI,HSE,LSE,LSI。HSI振蕩器時(shí)鐘:系統(tǒng)上電默認(rèn)時(shí)鐘,內(nèi)部振蕩器8MHZ,可以直接作為系統(tǒng)時(shí)鐘或在2分頻后作為PLL的輸入。時(shí)鐘頻率精度較差。HSE振蕩器時(shí)鐘外部:提供非常

一、系統(tǒng)時(shí)鐘配置

STM32有多個(gè)時(shí)鐘源,分別是HSI,HSE,LSE,LSI。

HSI振蕩器時(shí)鐘:

系統(tǒng)上電默認(rèn)時(shí)鐘,內(nèi)部振蕩器8MHZ,可以直接作為系統(tǒng)時(shí)鐘或在2分頻后作為PLL的輸入。時(shí)鐘頻率精度較差。

HSE振蕩器時(shí)鐘外部:

提供非常精確的主時(shí)鐘,STM32F1系列的板上為8MHZ,STM32F2系列的板上為25MHZ晶振。經(jīng)過(guò)PLL倍頻:作為系統(tǒng)時(shí)鐘。

PLL時(shí)鐘源輸入可以是HSI時(shí)鐘的二分之一,或者HSE時(shí)鐘。

LSE時(shí)鐘:

LSE晶體是一個(gè)32.867k的低速外部晶體。提供實(shí)時(shí)時(shí)鐘。一般專門用于RTC,等到RTC模塊時(shí)再使用。

LSI時(shí)鐘(Internal內(nèi)部):

LSI的RC擔(dān)當(dāng)一個(gè)低功耗時(shí)鐘源的角色,它可以在停機(jī)和待機(jī)模式下保存運(yùn)行。為獨(dú)立看門狗和自動(dòng)喚醒單元提供時(shí)鐘。LSI時(shí)鐘頻率大約40KHZ。一般用于IWDGCLK。

通常的時(shí)鐘選擇為HSE配合PLL使其工作在72MHZ(STM32F1系列)或者120MHZ(STM32F2系列)。

STM32F1xx系列

STM32F2XX系列

RCC_DeInit()同SystemInit()的區(qū)別僅僅在于SystemInit()多一個(gè)SetSysClock()。SystemInit()包含了整個(gè)內(nèi)部時(shí)鐘到外部時(shí)鐘的配置,但配置的頻率不可調(diào),如需調(diào)整頻率,可以自己用RCC_DeInit()再配合其他操作進(jìn)行。

配置時(shí)鐘流程:

1.將RCC寄存器重新設(shè)置為默認(rèn)值RCC_DeInit;

2.打開外部高速時(shí)鐘晶振HSERCC_HSEConfig(RCC_HSE_ON);

3.等待外部高速時(shí)鐘晶振工作HSEStartUpStatus =RCC_WaitForHSEStartUp();

4.設(shè)置AHB時(shí)鐘RCC_HCLKConfig;

5.設(shè)置高速APB2時(shí)鐘RCC_PCLK2Config;

6.設(shè)置低速速APB1時(shí)鐘RCC_PCLK1Config

7.設(shè)置PLLRCC_PLLConfig;

8.打開PLLRCC_PLLCmd(ENABLE);

9.等待PLL工作while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);

10.設(shè)置系統(tǒng)時(shí)鐘RCC_SYSCLKConfig;

11.判斷是否PLL是系統(tǒng)時(shí)鐘while(RCC_GetSYSCLKSource() != 0x08);

12.打開要使用的外設(shè)時(shí)鐘RCC_APB2PeriphClockCmd()/RCC_APB1PeriphClockCmd();

/*******************************************************************************

* Function Name: RCC_Configuration

* Description: Configures the different system clocks.

* Input: None

* Output: None

* Return: None

*******************************************************************************/

void RCC_Configuration(void)

{

/* RCC system reset(for debug purpose) */

RCC_DeInit();

/* Enable HSE */

RCC_HSEConfig(RCC_HSE_ON);

/* Wait till HSE is ready */

HSEStartUpStatus = RCC_WaitForHSEStartUp();

if(HSEStartUpStatus == SUCCESS)

{

/* Enable Prefetch Buffer */

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

/* HCLK = SYSCLK */

RCC_HCLKConfig(RCC_SYSCLK_Div1);

/* PCLK2 = HCLK */

RCC_PCLK2Config(RCC_HCLK_Div1);

/* PCLK1 = HCLK */

RCC_PCLK1Config(RCC_HCLK_Div1);

/* Select HSE as system clock source */

RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE);

/* Wait till HSE is used as system clock source */

while(RCC_GetSYSCLKSource() != 0x04)

{

}

}

XXXXXXXX;//分別為其他外設(shè)的時(shí)鐘配置。

XXXXXXXX;

XXXXXXXX;

}

二、關(guān)于PLL設(shè)置

PLL的設(shè)置主要通過(guò)函數(shù):void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t PLLM, uint32_t PLLN, uint32_t PLLP, uint32_t PLLQ, uint32_t PLLR)來(lái)實(shí)現(xiàn)。

主要講一下PLL值的設(shè)置與各部分時(shí)鐘的關(guān)系。函數(shù)中涉及到6個(gè)量的設(shè)置,第一個(gè)為內(nèi)部時(shí)鐘或者外部時(shí)鐘選擇,后面幾個(gè)為PLL值的設(shè)置。

lRCC_PLLSource選擇:

RCC_PLLSource_HIS:HIS內(nèi)部時(shí)鐘選定,頻率為16MHZ

RCC_PLLSource_HSE:HSE外部時(shí)鐘選定,頻率可自選,4MHZ-26MHZ之間,系統(tǒng)默認(rèn)25MHZ,如需改變,則對(duì)stm32f2xx.h中第70行的

#define HSE_VALUE((uint32_t)25000000) /*!< Value of the External oscillator in Hz */

進(jìn)行修改,改成外部晶振的值。

l通過(guò)選擇PLLM和PLLN,來(lái)計(jì)算得到PLLVCO,計(jì)算公式如下:

PLLVCO = (HSE_VALUE / PLL_M) * PLL_N。

PLL_M可取0-63,PLL_N可取192-432。

l通過(guò)選擇PLLP來(lái)選擇分頻數(shù),以得到系統(tǒng)時(shí)鐘。計(jì)算公式如下:

SYSCLK = PLLVCO / PLL_P,切記不要超過(guò)120MHZ最大頻率。

PLLP可選范圍為2,4,6,8。

l通過(guò)選擇PLLQ來(lái)OTGFS, SDIO和RNG的時(shí)鐘。計(jì)算公式如下:

Clock =PLLVCO / PLLQ,不能超過(guò)48MHZ。

PLL_Q可取4-15。

l通過(guò)選擇PLLR來(lái)決定I2S的時(shí)鐘。計(jì)算公式如下:

I2SCLK =PLLVCO / PLLR。

PLL_R可取2-7。


本站聲明: 本文章由作者或相關(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)閉