偶的代码是在Versaloon上用的,功能基本都OK了,所以偶希望占用的空间越小越好,就都使用最高的优化级别。 其他应用的话,肯定根据需要选择不同的优化级别。
3.0.0的库其实也有一些可以改进的,比如:system_stm32f10x.c中的static void SetSysClockTo72(void)函数: /*!< PLLCLK = 8MHz * 9 = 72 MHz */ RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL9); 这个默认了系统使用8M晶振,如果使用12M的话就有问题了,2.0.3的库中的RCC_Configuration函数中可以这么实现: /* PLLCLK */ RCC_PLLConfig(RCC_PLLSource_HSE_Div1, (_SYS_FREQUENCY * 1000000 / HSE_Value - 2) << 18); 这里只是默认系统频率是晶振频率的整数倍。使用8M或者12M晶振,只需要修改HSE_Value即可。
|