微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32的嵌套中断系统NVIC和RCC详细整理

STM32的嵌套中断系统NVIC和RCC详细整理

时间:11-26 来源:互联网 点击:

32_t RCC_PLL3Mul);//

void RCC_PLL3Cmd(FunctionalState NewState);//

#endif

voidRCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource);//设置系统时钟(SYSCLK)源

// RCC_SYSCLKSource_HSI,RCC_SYSCLKSource_HSE,RCC_SYSCLKSource_PLLCLK

uint8_tRCC_GetSYSCLKSource(void);// 返回用作系统时钟的时钟源

//返回值:0x00 HSI作为系统时钟,0x04 HSE作为系统时钟,0x08 PLL作为系统时钟

voidRCC_HCLKConfig(uint32_t RCC_SYSCLK);//设置AHB时钟(HCLK)

//输入:RCC_SYSCLK_Div1,RCC_SYSCLK_Div2,RCC_SYSCLK_Div4,RCC_SYSCLK_Div8,RCC_SYSCLK_Div16,

//RCC_SYSCLK_Div32,RCC_SYSCLK_Div64,RCC_SYSCLK_Div128,RCC_SYSCLK_Div256,RCC_SYSCLK_Div512

voidRCC_PCLK1Config(uint32_t RCC_HCLK);// 设置低速AHB时钟(PCLK1)

//输入: RCC_HCLK_Div1, RCC_HCLK_Div2, RCC_HCLK_Div4, RCC_HCLK_Div8, RCC_HCLK_Div16

voidRCC_PCLK2Config(uint32_t RCC_HCLK);//设置高速AHB时钟(PCLK2)

//输入:RCC_HCLK_Div1, RCC_HCLK_Div2, RCC_HCLK_Div4, RCC_HCLK_Div8, RCC_HCLK_Div16

voidRCC_ITConfig(uint8_t RCC_IT, FunctionalState NewState);// 使能或者失能指定的RCC中断

//输入:RCC_IT_LSIRDYLSI就绪中断->ENABLE或者DISABLE

//RCC_IT_LSERDYLSE就绪中断,RCC_IT_HSIRDYHSI就绪中断

//RCC_IT_HSERDYHSE就绪中断,RCC_IT_PLLRDYPLL就绪中断

#ifndef STM32F10X_CL

void RCC_USBCLKConfig(uint32_tRCC_USBCLKSource);// 设置USB时钟(USBCLK)

//输入:RCC_USBCLKSource_PLLCLK_1Div5,USB时钟 = PLL时钟除以1.5

RCC_USBCLKSource_PLLCLK_Div1,USB时钟 = PLL时钟

#else

void RCC_OTGFSCLKConfig(uint32_tRCC_OTGFSCLKSource);//

#endif

voidRCC_ADCCLKConfig(uint32_t RCC_PCLK2);// 设置ADC时钟(ADCCLK)

//RCC_PCLK2_Div2,ADC时钟 = PCLK / 2;RCC_PCLK2_Div4,ADC时钟 = PCLK / 4;

//RCC_PCLK2_Div6,ADC时钟 = PCLK / 6;RCC_PCLK2_Div8,ADC时钟 = PCLK / 8

#ifdef STM32F10X_CL

void RCC_I2S2CLKConfig(uint32_tRCC_I2S2CLKSource); //

void RCC_I2S3CLKConfig(uint32_tRCC_I2S3CLKSource);//

#endif

voidRCC_LSEConfig(uint8_t RCC_LSE);// 设置外部低速晶振(LSE)

//输入:RCC_LSE_OFF,LSE晶振OFF;RCC_LSE_ON,LSE晶振ON;

//RCC_LSE_Bypass,LSE晶振被外部时钟旁路

voidRCC_LSICmd(FunctionalState NewState);// 使能或者失能内部低速晶振(LSI)

//输入:ENABLE或者DISABLE(IWDG运行的话,LSI不能被失能)

voidRCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource);//设置RTC时钟(RTCCLK)源(RTC时钟一经选定即不能更改,除非复位后备域)

//输入:RCC_RTCCLKSource_LSE,选择LSE作为RTC时钟;RCC_RTCCLKSource_LSI,选择LSI作为RTC时钟;RCC_RTCCLKSource_HSE_Div128,选择HSE时钟频率除以128作为RTC时钟

voidRCC_RTCCLKCmd(FunctionalState NewState);// 使能或者失能RTC时钟

//输入:ENABLE或者DISABLE

voidRCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks);// 返回时钟的频率

//输入:指向结构RCC_ClocksTypeDef的指针,包含了各个时钟的频率(单位为Hz)

voidRCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState);// 使能或者失能AHB外设时钟

//输入:RCC_AHBPeriph_DMA,DMA时钟->ENABLE或者DISABLE;

//RCC_AHBPeriph_SRAM,SRAM时钟;RCC_AHBPeriph_FLITF,FLITF时钟

//RCC_AHBPeriph_DMA1,DMA1时钟;RCC_AHBPeriph_DMA2,DMA2时钟

//RCC_AHBPeriph_CRC,CRC时钟;RCC_AHBPeriph_FSMC,FSMC时钟

//RCC_AHBPeriph_SDIO,SDIO时钟

voidRCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);// 使能或者失能APB2外设时钟

//输入:RCC_APB2Periph_AFIO,功能复用IO时钟->ENABLE或者DISABLE;

//RCC_APB2Periph_GPIOA,GPIOA时钟;RCC_APB2Periph_GPIOB,GPIOB时钟;

//RCC_APB2Periph_GPIOC,GPIOC时钟;RCC_APB2Periph_GPIOD,GPIOD时钟;

//RCC_APB2Periph_GPIOE,GPIOE时钟;RCC_APB2Periph_ADC1,ADC1时钟;

//RCC_APB2Periph_ADC2,ADC2时钟;RCC_APB2Periph_TIM1,TIM1时钟;

//RCC_APB2Periph_SPI1,SPI1时钟;RCC_APB2Periph_USART1,USART1时钟;

//RCC_APB2Periph_ALL,全部APB2外设时钟

voidRCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);// 使能或者失能APB1外设时钟

//输入:RCC_APB1Periph_TIM2,TIM2时钟->ENABLE或者DISABLE;

//RCC_APB1Periph_TIM3,TIM3时钟

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top