标题:
GD32单片机外接16Mhz晶振,计算后倍频是小数,如何解决?
[打印本页]
作者:
hcf007
时间:
2021-10-5 17:45
标题:
GD32单片机外接16Mhz晶振,计算后倍频是小数,如何解决?
#if (defined(GD32F10X_MD) || defined(GD32F10X_HD) || defined(GD32F10X_XD))
/* select HXTAL/2 as clock source */
RCU_CFG0 &= ~(RCU_CFG0_PLLSEL | RCU_CFG0_PREDV0);
RCU_CFG0 |= (RCU_PLLSRC_HXTAL | RCU_CFG0_PREDV0);
/* CK_PLL = (CK_HXTAL/2) * 27 = 108 MHz */
RCU_CFG0 &= ~(RCU_CFG0_PLLMF | RCU_CFG0_PLLMF_4);
//RCU_CFG0 |= RCU_PLL_MUL27;
//这里CK_HXTAL为16MHz,根据公式 CK_PLL = (CK_HXTAL/2) * 27 = 108 MHz
所以计算倍频得13.5,那么应该选RCU_PLL_MUL13还是RCU_PLL_MUL14呢?
RCU_CFG0 |= RCU_PLL_MUL13;//??RCU_PLL_MUL14??
作者:
yzwzfyz
时间:
2021-10-6 10:26
无需纠结,实际使用晶振,几乎不可能是准确的16M,总是有误差的。只要能将误差控制在可接受范围内即可。
作者:
188610329
时间:
2021-10-7 00:17
比较不容易理解:
CK_HXTAL为16MHz,
根据公式 CK_PLL = (CK_HXTAL/2) * 27 = 108 MHz
(CK_HXTAL/2) * 27
=> 16/2*27 = 8*27 = 216 怎么等于的 108 呢?
作者:
hcf007
时间:
2021-10-8 09:30
188610329 发表于 2021-10-7 00:17
比较不容易理解:
CK_HXTAL为16MHz,
根据公式 CK_PLL = (CK_HXTAL/2) * 27 = 108 MHz
27就是倍频,是没修改过的,这样求CK_PLL = (CK_HXTAL/2) * RCU_PLL_MUL = 108 MHz,CK_HXTAL=16,
则RCU_PLL_MUL =108/(16/2)=13.5,所以就很纠结是要14倍频还13倍频
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1