STM32的嵌套中断系统NVIC和RCC详细整理
设置系统时钟:
判断 PLL 是否是系统时钟:
voidRCC_config()//如果外部晶振为8M,PLLCLK=SYSCLK=72M,HCLK=72M,//P2CLK=72M,P1CLK=36M,ADCCLK=36M,USBCLK=48M,TIMCLK=72M
{
//外部时钟不分频,为HSE的9倍频8MHz * 9 =72MHz
2、使用寄存器进行RCC时钟初始化配置
voidRCC_init(u8 PLL)//输入PLL的倍频值2—16倍频
//HCLK=PLLCLK=SYSCLK=P2CLK=P1CLK*2=ADCCLK*2=TIMCLK=USBCLK*2/3
{
}
四、相关库函数解析
1、库中所涉及到的结构体
typedef struct
{
}RCC_ClocksTypeDef;
2、库函数解析
void RCC_DeInit(void);//将外设RCC寄存器设为缺省值;(除RCC_BDCR和RCC_CSR)
voidRCC_HSEConfig(uint32_t RCC_HSE);//设置外部高速晶振(HSE);
//输入:RCC_HSE_OFF,RCC_HSE_ON,RCC_HSE_Bypass(HSE旁路)
ErrorStatusRCC_WaitForHSEStartUp(void);//等待HSE起振;
//返回值:SUCCESS,HSE晶振稳定且就绪;ERROR,HSE晶振未就绪
voidRCC_AdjustHSICalibrationValu
//输入:校准补偿值(该参数取值必须在0到0x1F之间)
voidRCC_HSICmd(FunctionalState NewState);//使能或者失能内部高速晶振(HSI)
//输入:ENABLE或者DISABLE(如果HSI被用于系统时钟,或者FLASH编写操作进行中,那么它不能被停振)
void RCC_PLLConfig(uint32_tRCC_PLLSource, uint32_t RCC_PLLMul);//设置PLL时钟源及倍频系数
//输入:RCC_PLLSource_HSI_Div2,RCC_PLLSource_HSE_Div1,RCC_PLLSource_HSE_Div2
//输入:RCC_PLLMul_2到RCC_PLLMul_16
voidRCC_PLLCmd(FunctionalState NewState);// 使能或者失能PLL
//输入:ENABLE或者DISABLE
#if defined(STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) ||defined (STM32F10X_CL)
void RCC_PREdiv1Config(uint32_tRCC_PREdiv1_Source, uint32_t RCC_PREdiv1_Div);//
#endif
#ifdef
void RCC_PREdiv2Config(uint32_t RCC_PREdiv2_Div);//
void RCC_PLL2Config(uint32_t RCC_PLL2Mul);//
void RCC_PLL2Cmd(FunctionalState NewState);//
void RCC_PLL3Config(uint
STM32中断系统NVICRC 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)