大部分的开发板都是用8M晶体,代码也是用的8M晶体配置.
一次开发过程中因为板子体积有限,选择了SMD3225的晶振,在LCSC检索发现8M的晶体比16M普遍贵3倍多。 所以将代码适配为16M.
修改的地方只动了两个地方;
- static void SetSysClock(void)
将以下代码
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_PREDIV1 | RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL6);
修改为
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_PREDIV1 | RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLMULL3);
- void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)
函数中有用到 HSE_VALUE, 为了一致将
宏定义
#if !defined (HSE_VALUE)
#define HSE_VALUE ((uint32_t)8000000)
#endif
修改为
#if !defined (HSE_VALUE)
#define HSE_VALUE ((uint32_t)16000000)
#endif
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)