stm32F407使用12MHz晶振,SysTick比实际快了1.5倍,求解

2019-07-20 02:00发布

这里将HSE_VALUE改为12MHz,
#if !defined  (HSE_VALUE)
  #define HSE_VALUE    ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */

/************************* PLL Parameters *************************************/
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
#define PLL_M      (HSE_VALUE / 1000000)
#define PLL_N      336

/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P      2

/* USB OTG FS, SDIO and RNG Clock =  PLL_VCO / PLLQ */
#define PLL_Q      7
/*******************************************************************************
* Function Name  : SysTick_Configuration
* Description    : Configures the SysTick for OS tick.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void  SysTick_Configuration(void)
{
    RCC_ClocksTypeDef  rcc_clocks;
    rt_uint32_t         cnts;

    RCC_GetClocksFreq(&rcc_clocks);

    cnts = (rt_uint32_t)rcc_clocks.HCLK_Frequency / RT_TICK_PER_SECOND;
    cnts = cnts / 8;

    SysTick_Config(cnts);
    SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
}
实际运行时,rt_thread_delay(RT_TICK_PER_SECOND);函数比实际快1.5倍,即实际延时只有三分之二秒,rt-thread-v3.1.0版本,stm32F407VET6,晶振是12MHz

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
李申瑞
1楼-- · 2019-07-20 21:42
s2333 发表于 2019-5-4 10:57
static void SetSysClock(void) 函数中,
  /* Enable HSE */
  RCC->CR |= ((uint32_t)RCC_CR_HSEON); ...

经调试跟踪,这个函数是可以启动HSE的,且是成功的,现在懵逼了,完全没有思路了
逍遥叹乄
2楼-- · 2019-07-21 03:26
我以前搞STM32F105的时候,焊了个8M的晶振上去,频率也是不正常的,因为官方默认的晶振是25M,需要改几个文件里的系数才行。
s2333
3楼-- · 2019-07-21 09:16
 精彩回答 2  元偷偷看……
李申瑞
4楼-- · 2019-07-21 11:30
逍遥叹乄 发表于 2019-5-4 13:31
我以前搞STM32F105的时候,焊了个8M的晶振上去,频率也是不正常的,因为官方默认的晶振是25M,需要改几个文 ...

你还记得要改哪几个文件的系数吗,底层程序看起来好吃力
李申瑞
5楼-- · 2019-07-21 16:34
s2333 发表于 2019-5-4 13:42
我也有点懵逼了...
你看看有这个初始化吗   uint32_t SystemCoreClock = 168000000;

有的,而且调试时SYSTEM_Frequency=168M,HCLK_Frequency=168M,PLCK1_Frequency=42M,PLCK2_Frequency=84M,都是正常的
s2333
6楼-- · 2019-07-21 20:18
 精彩回答 2  元偷偷看……

一周热门 更多>