当STM32使用外部时钟时,要达到72M主频,需要根据晶振的频率对倍频系数进行相应修改。
具体位置为:
SystemInit()–>SetSysClock()–>SetSysClockTo72()–>
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9)
由于我用的是STM32F10X_HD,就将上例中RCC_CFGR_PLLMULL9修改为相应的倍频系数。
奇怪的是,虽然之前时钟倍频系数不对,但是串口初始化时波特率确实正常的,只是clock时钟乱了,导致定时打印输出时间错误。