cpev 发表于 2018-4-24 18:53:30

STM 时钟设置问题

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

我已改了以下两个地方
1: keil C 工程配置选项把晶振频率由8改为16
2:宏定义 #define HSE_VALUE    ((uint32_t)16000000)

wudianjun2001 发表于 2018-4-25 09:14:40

系统时钟都在这个文件里设置的

wenyangzeng 发表于 2018-4-24 19:31:04

本帖最后由 wenyangzeng 于 2018-4-24 20:11 编辑

不止这么简单吧,请参考我的帖子:

https://www.stmcu.org.cn/module/forum/thread-614091-1-1.html

dataozi 发表于 2018-4-24 19:54:10

可以这么配置的
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);      
        }
}

cpev 发表于 2018-4-25 10:29:55

dataozi 发表于 2018-4-24 19:54
可以这么配置的
void RCC_Configuration(void)
{


如果我设置成24MHZ,定时器T3也是24M时钟会很不准。例如,500ms的时间实际测量有550ms

dataozi 发表于 2018-4-25 11:26:24

cpev 发表于 2018-4-25 10:29
如果我设置成24MHZ,定时器T3也是24M时钟会很不准。例如,500ms的时间实际测量有550ms...

如果是16MHZ的外部晶振,那么想设置成24MHZ,先要2分频一下,在3倍频才能成24MHZ
如果是24MHZ的外部晶振,别忘了修改一下底层,HSE变成24mhz
页: [1]
查看完整版本: STM 时钟设置问题