微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32学习笔记——测试闪灯程序

STM32学习笔记——测试闪灯程序

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

//配置PLL时钟==外部高速晶体时钟*9PLLCLK=8MHz*9=72MHz

RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//设置PLL时钟及倍频系数第一个参数设置PLL的输入时钟源

//可以有RCC_PLLSource_HSI_Div2:HSI时钟频率除以2,RCC_PLLSource_HSE_Div1:HSE时钟频率,RCC_PLLSource_HSE_Div2:

//HSE时钟频率除以2

//第二个参数设置PLL的倍频系数,可以是2~16倍频,这里设为9倍频

//警告:必须正确设置软件,使PLL输出时钟频率不超过72MHz

//使能PLL时钟

RCC_PLLCmd(ENABLE);//使能或失能PLL,参数可以取ENABLE或DISABLE,如果PLL被用于系统时钟,那么它不能被失能

//等待PLL时钟就绪

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)//检查指定的RCC标志位设置与否,输入参数为待检查的RCC标志位

//其取值情况详见《STM32的函数说明(中文)》P211.返回值为RCC_FLAG的新状态,SET或RESET

{

}

//配置系统时钟=PLL时钟

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//设置系统时钟SYSCLK,输入参数用于指定用作系统时钟的时钟源

//可以为:RCC_SYSCLKSource_HSI:选择HSI作为系统时钟,RCC_SYSCLKSource_HSE:选择HSE作为系统时钟,RCC_SYSCLKSource_PLLCLK

//选择PLL作为系统时钟

//检查PLL时钟是否作为系统时钟

while(RCC_GetSYSCLKSource()!=0x08)//函数RCC_GetSYSCLKSource()返回用作系统时钟的时钟源。

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

{

}

}

}

//嵌套向量中断控制器配置函数

voidNVIC_Configuration(void)

{

#ifdefVECT_TAB_RAM

NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0);//设置向量表的位置和偏移,第一个参数指定向量表的位置在RAM还是在

//程序存储器flash中,取值可以是NVIC_VectTab_RAM:向量表位于RAM,NVIC_VectTab_FLASH:向量表位于FLASH。第二个参数为

//向量表基地址的偏移量,对于FLASH,该参数值必须高于0x08000100,对于RAM,必须高于0x100.它同时必须是256(64*4)的整数倍

#else

NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);

#endif

}

voidDelay(vu32nCount)

{

for(;nCount!=0;nCount--);

}

#ifdefDEBUG

//assert_failed编写于文件main.c或其他用户C文件中

voidassert_failed(u8*file,u32line)

{

while(1)

{

}

}

#endif

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

网站地图

Top