中级会员
 
- 积分
- 225
- 金钱
- 225
- 注册时间
- 2015-12-17
- 在线时间
- 44 小时
|
1金钱
在各个例程中,找不到系统时钟具体在哪里配置的,我还是习惯void RCC_Configuration(void) {
ErrorStatus HSEStartUpStatus;
RCC_DeInit();//缺省值
RCC_HSEConfig(RCC_HSE_ON);//外部高速晶振
HSEStartUpStatus=RCC_WaitForHSEStartUp();//等待HSE起震
if(HSEStartUpStatus==SUCCESS)
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//使能预存值缓存
FLASH_SetLatency(FLASH_Latency_2);//设置代码延时值
RCC_HCLKConfig(RCC_SYSCLK_Div1);//设置AHB时钟
RCC_PCLK2Config(RCC_HCLK_Div1);//设置高速AHB时钟
RCC_PCLK1Config(RCC_HCLK_Div2);//设置低速AHB时钟
RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//PLL输入时钟。倍频系数
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)//等待PLL起震
{
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//等待PLL作为系统时钟源
while(RCC_GetSYSCLKSource()!=0x08)
{
}
}
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOF|RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOG, ENABLE); //ê1?üUSART1£?GPIOAê±?ó
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC,ENABLE); //ê1?üFSMCê±?ó
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2|RCC_APB1Periph_USART2, ENABLE); //ê1?üUSART1£?GPIOAê±?ó
}
这样格式的初始化,本例程中我都找不到在哪里配置,修改的时候都不知道去哪里修改。
并且lib中为什么都没有包含stm32f10x_systick.c 呢,滴答时钟又是如何配置的 ,例程中的延时函数有介绍 也看不懂,一般都是
oid SysTick_Config(void)
{
SysTick_CounterCmd(SysTick_Counter_Disable);//定时失能
SysTick_ITConfig(DISABLE);//中断失能
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);//时钟源
SysTick_SetReload(9000000);//自动重载
SysTick_ITConfig(ENABLE);//开中断
SysTick_CounterCmd(SysTick_Counter_Enable);//定时使能
}
习惯这样设置,调用本例程的程序,看不懂,就不会自己修改了 。我试着入上设置的话,就会和本例程定义冲突,有错误, 哪位大侠帮忙解析一下 谢谢
|
|