论坛元老
 
- 积分
- 4562
- 金钱
- 4562
- 注册时间
- 2010-12-14
- 在线时间
- 32 小时
|
发表于 2013-7-9 18:52:36
|
显示全部楼层
回复【楼主位】litai11114:
---------------------------------
1.没有你说的重复定义问题。
最开头:#define SYSCLK_FREQ_72MHz
然后SystemInit函数里面会调用 SetSysClock();函数,然后调用函数SetSysClockTo72()设置相应的寄存器,使系统时钟为72M。
2.很显然,关键部分在SetSysClock函数,根据宏定义来预编译的,不会全部编译。你定义了SYSCLK_FREQ_72MHz ,那么只会调用SetSysClockTo72();
static void SetSysClock(void)
{
#ifdef SYSCLK_FREQ_HSE
SetSysClockToHSE();
#elif defined SYSCLK_FREQ_24MHz
SetSysClockTo24();
#elif defined SYSCLK_FREQ_36MHz
SetSysClockTo36();
#elif defined SYSCLK_FREQ_48MHz
SetSysClockTo48();
#elif defined SYSCLK_FREQ_56MHz
SetSysClockTo56();
#elif defined SYSCLK_FREQ_72MHz
SetSysClockTo72();
#endif
/* If none of the define above is enabled, the HSI is used as System clock
source (default after reset) */
} |
|