STM时钟设置如何修改?

2019-07-14 14:36发布

所用单片机型号为STM32F103VC, 外部晶振为16MHZ, 需要把系统频率设置为16MHZ,在SetSysClockToHSE内如何修改?

我已改了以下两个地方
1: keil C 工程配置选项  把晶振频率由8改为16
2:宏定义 #define HSE_VALUE    ((uint32_t)16000000)  
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
ctwewer
1楼-- · 2019-07-14 19:39
 精彩回答 2  元偷偷看……
clzkkq
2楼-- · 2019-07-14 21:03
可以这么配置的
void RCC_Configuration(void)
{
        ErrorStatus HSEStartUpStatus;
        RCC_DeInit();
        RCC_HSEConfig(RCC_HSE_ON);
        HSEStartUpStatus=RCC_WaitForHSEStartUp();
        if(HSEStartUpStatus==SUCCESS)
        {   
          RCC_PLLConfig(RCC_PLLSource_HSE_Div2, RCC_PLLMul_2);
                RCC_HCLKConfig(RCC_SYSCLK_Div1);
                RCC_PCLK2Config(RCC_HCLK_Div1);
                RCC_PCLK1Config(RCC_HCLK_Div1);//注意这里  
       
                FLASH_SetLatency(FLASH_Latency_0);
                FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);                          
                RCC_PLLCmd(ENABLE);
                while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) ;       
                RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  
                while(RCC_GetSYSCLKSource() != 0x08);      
        }
}
屠鸡勇士李运好
3楼-- · 2019-07-14 22:28
clzkkq 发表于 2019-1-14 11:35
可以这么配置的
void RCC_Configuration(void)
{

如果我设置成24MHZ,定时器T3也是24M  时钟会很不准。例如,500ms的时间实际测量有550ms
clzkkq
4楼-- · 2019-07-15 04:25
屠鸡勇士李运好 发表于 2019-1-14 11:47
如果我设置成24MHZ,定时器T3也是24M  时钟会很不准。例如,500ms的时间实际测量有550ms

如果是16MHZ的外部晶振,那么想设置成24MHZ,先要2分频一下,在3倍频才能成24MHZ
如果是24MHZ的外部晶振,别忘了修改一下底层,HSE变成24mhz

一周热门 更多>