在STM32上如果不使用外部晶振,OSC_IN和OSC_OUT的接法
如果使用内部RC振荡器而不使用外部晶振,请按照下面方法处理:
1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。
2)对于少于100脚的产品,有2种接法:
2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。
2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出并输出‘0’。此方法可以减小功耗并(相对上面2.1)节省2个外部电阻。
HSI内部8MHz的RC振荡器的误差在1%左右,内部RC振荡器的精度通常比用HSE(外部晶振)要差上十倍以上。STM32的ISP就是用(HSI)内部RC振荡器。
修改STM32系统时钟操作方法
新的STM32控制板如何调试
具体步骤如下:
第一步,全局搜索HSE_VALUE
#define HSE_VALUE ((uint32_t)8000000) /*!《 Value of the External oscillator in Hz */
修改为:
#define HSE_VALUE ((uint32_t)12000000) /*!《 Value of the External oscillator in Hz */
第二步,打开system_stm32f10x.c,修改PLL参数,将
/* PLL configuration: PLLCLK = HSE * 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_HSE | RCC_CFGR_PLLMULL9);
修改为:
/* PLL configuration: PLLCLK = HSE * 6 = 72 MHz */
RCC-》CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
RCC_CFGR_PLLMULL));
RCC-》CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);//12MHZ,SYSCLK=HSE*6=72MHZ
或者一句RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_6); 就可以解决了
这样就可以进行正常的72MHZ速度跑了。