STM32F103c8t6超频
STM32F103C8T6官方说的主频为72MHz。但为了好奇,我决定去网上买一个STM32f103最小系统进行超频。如下图所示:
像上图这种最小系统,一般都有一个LED灯,接在STM32的PC13上。一开始,我想通过LED的闪烁来看出主频是否变化,但视力有限,看不出72M和112M主频的变化。
所以我用逻辑分析仪来看高低电平的脉宽。如下图所示:
因为从STM32的时钟树可以看出,STM32的系统时钟是通过外部晶振倍频到72MHz频率的,所以我们只要修改其倍频值,那么就可以超频。
上图的的红色框框就是对外部晶振(这里是8MHz的外部晶振)进行倍频,即8MHz * 9 =72MHz的系统主频。所以主要是修改这个PLLMul,这样主频就会改变。
一开始,我没有改变频率,直接就是9倍频。然后我写了一个延时函数,在主循环里面,通过对io口的高低电平的控制,然后调用这个延时延时,通过逻辑分析仪来看其脉宽。
延时函数:
void Delay_ms(int n)
{int i,j;for(i=n;i>0;i--)for(j=12000;j>0;j--);
}
高低电平的控制:
while(1)
{PIN = 0;Delay_ms(500);PIN = 1;Delay_ms(500);
}
当我设为9倍频时,即72MHz的主频时,上升沿和下降沿之间的脉宽为750ms。
当我设为13倍频时,即104MHz的主频时,上升沿和下降沿之间的脉宽为519ms。 并且此时就算是LED还可以闪烁。
但是当我设为14倍频时,即112MHz的主频时,上升沿和下降沿之间的脉宽为482ms。 而LED却不闪烁了。但可以通过逻辑分析仪可以看到io口电平还是改变的。
而15倍频的话,即主频为120Mhz,程序基本运行不了。