免费A级毛片18禁网站免费_成人亚洲欧美一区二区_黄色视频在线免费观看网站 _动漫精品亚洲一区_欧美做爰一区二区三区_尤物视频黄色网站大全线观看_4虎影库永久地址

新聞banner
當(dāng)前位置: 首 頁(yè) >> 新聞資訊>>技術(shù)資訊
12

推動(dòng)單片機(jī)的各指令執(zhí)行,是MCU選型的一個(gè)重要指標(biāo)。

在CKS32F4xx系列產(chǎn)品中,有HSI、HSE、LSI、LSE、PLL五個(gè)重要的時(shí)鐘源,其間PLL分為主PLL和專用PLL兩部分。從時(shí)鐘頻率來(lái)分能夠分為高速時(shí)鐘源(HIS、HIS、PLL)和低速時(shí)鐘源(LSI、LSE);從來(lái)歷可分為外部時(shí)鐘源(HSE、LSE)和內(nèi)部時(shí)鐘源(HIS、LSI、PLL)。

超低功耗mcu


①:LSI是低速內(nèi)部RC振蕩器,頻率為32kHz。供獨(dú)立看門狗和RTC單元使用。

②:LSE是低速外部時(shí)鐘,接頻率為32.768kHz晶振。主要供RTC單元使用。

③:HSE是高速外部時(shí)鐘晶振輸入,頻率范圍為4MHz~26MHz。。

④:HSI是高速內(nèi)部RC振蕩器,頻率為16MHz??梢灾苯幼鳛橄到y(tǒng)時(shí)鐘或者用作PLL輸入。

⑤:PLL為鎖相環(huán)倍頻輸出,有兩個(gè)PLL:


    1)主 PLL(PLL)由 HSE 或許 HSI 供給時(shí)鐘信號(hào),并具有兩個(gè)不同的輸出時(shí)鐘。

    其二PLLQ用于生成 USB_OTG_FS(48MHz)、隨機(jī)數(shù)發(fā)生器SDIO時(shí)鐘。

在CKS32F4xx系列固件庫(kù)system_cks32f4xx.c文件中定義了函數(shù)SystemInit(void),并在其間調(diào)用了SetSysClock()函數(shù)來(lái)裝備體系要害時(shí)鐘寄存器,其處理流程如下:

在設(shè)置主PLL時(shí)鐘時(shí),需求設(shè)置一系列的分頻系數(shù)和倍頻參數(shù),代碼如下:


RCC->PLLCFGR = PLL_M | (PLL_N << 6) | (((PLL_P >> 1) -1) << 16) |  (RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q << 24);

 PLL_M、PLL_N、PLL_P宏定義均在在System_cks32f4xx.c文件中定義,當(dāng)采用8MHz外部晶振時(shí),主PLL時(shí)鐘計(jì)算方法如下:

PLL = 8MHz * PLL_N / (PLL_M * PLL_P) = 8MHz * 336 /(8 * 2) = 168MHz

用戶可根據(jù)實(shí)際需求,根據(jù)SetSysClock函數(shù)內(nèi)的注釋進(jìn)行實(shí)際修改,可用的時(shí)鐘源配置宏定義位于cks32f4xx.h中,如RCC_CR_HSION、RCC_CR_HSEON等。

CKS32F4xx系列外設(shè)時(shí)鐘配置

在系統(tǒng)初始化之后,在使用部分外設(shè)時(shí),我們還需要根據(jù)外設(shè)需求修改某些時(shí)鐘源配置。在CKS32F4xx系列固件庫(kù)中,時(shí)鐘源的選擇以及時(shí)鐘使能等函數(shù)均在RCC相關(guān)固件庫(kù)文件 cks32f4xx_rcc.h 和 cks32f

void RCC_AHB1PeriphClockCmd(uint32_t RCC_AHB1Periph, FunctionalState NewState);
void RCC_AHB2PeriphClockCmd(uint32_t RCC_AHB2Periph, FunctionalState NewState);
void RCC_AHB3PeriphClockCmd(uint32_t RCC_AHB3Periph, FunctionalState NewState);
void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);

以上5個(gè)系統(tǒng)時(shí)鐘使能函數(shù)分別控制AHB1、AHB2、AHB3、APB1、APB2總線。要使能某個(gè)外設(shè),調(diào)用對(duì)應(yīng)的總線外設(shè)時(shí)鐘使能函數(shù)即可。

例如,如果我們要使能GPIOA,那么我們可以在頭文件 cks32f4xx_rcc.h 里面查看到宏定義標(biāo)識(shí)符RCC_AHB1Periph_GPIOA掛載在AHB1總線之下,因此我們調(diào)用方式入如下:?

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);

 同理,如果我們要使能USART1的時(shí)鐘,那么我們調(diào)用的函數(shù)為:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);

還有一類時(shí)鐘使能函數(shù)是時(shí)鐘源使能函數(shù),前面我們已經(jīng)講解過(guò)CKS32F4xx系列有5類時(shí)鐘源。這里我們列出來(lái)幾種重要的時(shí)鐘源使能函數(shù):

void RCC_HSICmd(FunctionalState NewState);
void RCC_LSICmd(FunctionalState NewState);
void RCC_PLLCmd(FunctionalState NewState);
void RCC_PLLI2SCmd(FunctionalState NewState);
void RCC_PLLSAICmd(FunctionalStateNewState);
void RCC_RTCCLKCmd(FunctionalState NewState);

具體調(diào)用方法如下:

RCC_PLLCmd(ENABLE);

 第二類時(shí)鐘功能函數(shù):時(shí)鐘源選擇和分頻因子配置函數(shù)用來(lái)選擇相應(yīng)的時(shí)鐘源以及配置相應(yīng)的時(shí)鐘分頻系數(shù),比如配置HSI、HSE、PLL三個(gè)中的一個(gè)時(shí)鐘源為系統(tǒng)時(shí)鐘。以下為幾種時(shí)鐘源配置函數(shù):

void RCC_LSEConfig(uint8_t RCC_LSE);
void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource);
void RCC_HCLKConfig(uint32_t RCC_SYSCLK);
void RCC_PCLK1Config(uint32_t RCC_HCLK);
void RCC_PCLK2Config(uint32_t RCC_HCLK);
void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource);
void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t PLLM,uint32_t PLLN, int32_t PLLP, uint32_t PLLQ);

比如我們要設(shè)置系統(tǒng)時(shí)鐘源為 HSI,則可以調(diào)用系統(tǒng)時(shí)鐘源配置函數(shù):

RCC_HCLKConfig(RCC_SYSCLKSource_HSI);

第三類外設(shè)復(fù)位函數(shù)如下:

void RCC_AHB1PeriphResetCmd(uint32_t RCC_AHB1Periph, FunctionalState NewState);void RCC_AHB2PeriphResetCmd(uint32_t RCC_AHB2Periph, FunctionalState NewState);void RCC_AHB3PeriphResetCmd(uint32_t RCC_AHB3Periph, FunctionalState NewState);void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);

這類函數(shù)和前面講解的外設(shè)時(shí)鐘函數(shù)使用方法基本一致,不同的是一個(gè)是用來(lái)使能外設(shè)時(shí)鐘,一個(gè)是用來(lái)復(fù)位對(duì)應(yīng)的外設(shè)。對(duì)于這些時(shí)鐘操作函數(shù),我們就不一一列舉出來(lái),大家可以打開(kāi) RCC 對(duì)應(yīng)的文件仔細(xì)了解。

推薦閱讀:低功耗MCU,超低功耗MCU,MCU芯片


底部二維碼1
手機(jī)掃一掃
關(guān)注我們微信公眾號(hào)
杭州市| 德化县| 墨竹工卡县| 乐业县| 汝南县| 夏津县| 七台河市| 德令哈市| 察雅县| 大石桥市| 礼泉县| 汽车| 大同县| 东山县| 哈尔滨市| 南昌市| 称多县| 离岛区| 中阳县| 灵石县| 壶关县| 门源| 尉犁县| 江阴市| 巩留县| 新竹市| 登封市| 道真| 武隆县| 方城县| 西藏| 北安市| 金平| 安阳市| 深州市| 甘孜县| 黔西| 霍州市| 吉林市| 铁岭市| 双辽市|