STM32F103想用内部时钟HSI做为系统时钟,怎么配置成36M

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32F103想用内部时钟HSI做为系统时钟,怎么配置成36M相关的知识,希望对你有一定的参考价值。

参考技术A void RCC_Configuration(void)

RCC_DeInit();//将外设 RCC寄存器重设为缺省值

RCC_HSICmd(ENABLE);//使能HSI
while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);//等待HSI使能成功

//FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
//FLASH_SetLatency(FLASH_Latency_2);

RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
RCC_PCLK2Config(RCC_HCLK_Div1);

//设置 PLL 时钟源及倍频系数
RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_9);//使能或者失能 PLL,这个参数可以取:ENABLE或者DISABLE
RCC_PLLCmd(ENABLE);//如果PLL被用于系统时钟,那么它不能被失能
//等待指定的 RCC 标志位设置成功 等待PLL初始化成功
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);

//设置系统时钟(SYSCLK) 设置PLL为系统时钟源
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//选择想要的系统时钟
//等待PLL成功用作于系统时钟的时钟源
// 0x00:HSI 作为系统时钟
// 0x04:HSE作为系统时钟
// 0x08:PLL作为系统时钟
while(RCC_GetSYSCLKSource() != 0x08);//需与被选择的系统时钟对应起来,RCC_SYSCLKSource_PLL
本回答被提问者采纳

STM32F103想用内部时钟HSI做为系统时钟,怎么配置成36M

FSMC初始化倒是没看出问题,问题应该出在别处,可能有以下原因: 1.系统时钟配置有误 2.焊接的晶振有误 STM32用8M晶振 3.编写的刷屏函数有问题 可能加了延时函数 参考技术A 在“stm32f10x_rcc.c”中

以上是关于STM32F103想用内部时钟HSI做为系统时钟,怎么配置成36M的主要内容,如果未能解决你的问题,请参考以下文章

stm32为啥要配置系统时钟

stm32f103C8T6使用内部时钟能不能达到64M

GD32F103学习笔记——在GD32F103移植STM32F103代码

STM32F103C8T6使用内部时钟作为系统时钟

GD32F103学习笔记——在GD32F103移植STM32F103代码

stm32f4中有5个最重要的时钟源,分别是哪5个