初级会员
- 积分
- 94
- 金钱
- 94
- 注册时间
- 2017-7-20
- 在线时间
- 26 小时
|
我主要是通过修改system_stm32f10x.c中的代码来实现的。
首先原来的时钟是72Mhz他是由外部接的8M晶振的HSE时钟不分频{是通过设置时钟控制寄存器(RCC_CR)的第16位来使能HSE时钟,然后判断它的第17位是否为1来判断HSE时钟是否就绪,就绪后设置HCLK = SYSCLK}然后通过设置时钟配置寄存器RCC_CFGR的18到21位(PLLMULLLL时钟倍频系数)为9倍频作为系统的72Mhz时钟
我通过修改时钟配置寄存器RCC_CFGR的第17位为1是HSE由原来的8Mhz 2分频后变为4Mhz然后再设置时钟配置寄存器RCC_CFGR的18到21位(PLLMULLLL时钟倍频系数)为15倍频作为系统的60Mhz时钟
修改的代码如下:
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL15);
把static void SetSysClockTo70(void)改为static void SetSysClockTo60(void)
把#elif defined SYSCLK_FREQ_70MHz改为#elif defined SYSCLK_FREQ_60MHz
在static void SetSysClock(void)中把#elif defined SYSCLK_FREQ_72MHz SetSysClockTo72();改为#elif defined SYSCLK_FREQ_60MHz SetSysClockTo60();
然后在开头的条件编译中把#define SYSCLK_FREQ_72MHz 72000000注释掉然后加入#define SYSCLK_FREQ_60MHz 60000000就完成了。
|
|