完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
void RCC_Configuration(void)
{ ErrorStatus HSEStartUpStatus; //SystemInit(); //完全可以使用此函数配置,但是为了学习咱先不用 RCC_DeInit(); //复位RCC模块的寄存器,复位成缺省值 RCC_HSEConfig(RCC_HSE_ON); //开启HSE时钟,咱是用HSE的时钟作为PLL的时钟源 HSEStartUpStatus = RCC_WaitForHSEStartUp(); //获取HSE启动状态 if(HSEStartUpStatus == SUCCESS) //如果HSE启动成功 { FLASH_PrefetchBufferCmd(ENABLE); //开启FLASH的预取功能 FLASH_SetLatency(FLASH_Latency_2); //FLASH延迟2个周期(这里我也不明白,先用吧) RCC_HCLKConfig(RCC_SYSCLK_Div1); //配置HCLK,PCLK2,PCLK1,PLL RCC_PCLK2Config(RCC_HCLK_Div1); RCC_PCLK1Config(RCC_HCLK_Div2); RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9); RCC_PLLCmd(ENABLE); //启动PLL while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET) {} //等待PLL启动完成 RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //配置系统时钟 while(RCC_GetSYSCLKSource() !=0x80) //检查是否将HSE 9倍频后作为系统时钟 {} } } 设置时钟流程: 1.将RCC寄存器重新设置为默认值 RCC_DeInit 2.打开外部高速时钟晶振HSE RCC_HSEConfig(RCC_HSE_ON); 3.等待外部高速时钟晶振工作 HSEStartUpStatus = RCC_WaitForHSEStartUp(); 4.设置AHB时钟 RCC_HCLKConfig; 5.设置高速APB2时钟 RCC_PCLK2Config; 6.设置低速速APB1时钟 RCC_PCLK1Config 7.设置PLL RCC_PLLConfig 8.打开PLL RCC_PLLCmd(ENABLE); 9.等待PLL工作 while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) 10.设置系统时钟 RCC_SYSCLKConfig 11.判断是否PLL是系统时钟 while(RCC_GetSYSCLKSource() != 0x08) 12.打开要使用的外设时钟 RCC_APB2PeriphClockCmd()/RCC_APB1PeriphClockCmd() 1.使用systeninit()和不使用有什么区别? 2.使用systeninit()和设置时钟流程的1-12步骤有什么区别? 3.我写程序不用systeminit().也不适用设置时钟流程的1-12步骤,只使用第12步,程序也能运行,请问有什么不同? |
|
相关推荐
8个回答
|
|
只使用第12步,那就用的是默认内部8M时钟;配置过可以达到72M;还是不要看库函数了,直接看寄存器吧。
|
|
|
|
systeninit就是一个函数,只是st的人把他潜入到.s文件里面去了,在执行main函数之前就运行了这个函数,所以在main函数里面就不需要管时钟这些东西了。
|
|
|
|
|
|
|
|
如果使用systeninit();APB1时钟是72/2=36M,
如果不加systeninit(); 只使用 RCC_APB2PeriphClockCmd()/RCC_APB1PeriphClockCmd(),APB1时钟能达到多少? |
|
|
|
看手册,明明说了.APB1最大就是36M.
|
|
|
|
|
|
APB1必定是APB2的一半么
|
|
|
|
当然不是.看你的分频设置i.
|
|
|
|
只有小组成员才能发言,加入小组>>
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
528 浏览 2 评论
550 浏览 2 评论
信号发生器产生的正弦频率信号,用定时器进行捕获,当幅值低于3V后为什么MCU就无法捕获到了?
209 浏览 2 评论
875 浏览 2 评论
编码器模式下,中断内访问其他定时器cnt值,会导致进入中断次数丢失的原因?
859 浏览 2 评论
1331浏览 9评论
STM32出现error downloading following files怎么解决?
28浏览 3评论
stm32f103的RST复位后PWM就停止输出了,为什么?
37浏览 3评论
STM32G0空闲中断异常,且DMA接收不到数据是怎么回事?
24浏览 3评论
STM32F103用Timer3TRGO通道触发ADC,ADC在三路输出PWM高电平中间点采样,如何配置?
15浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-28 23:18 , Processed in 0.695694 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号