打印
[STM32F1]

STM32F103c8t6超频

[复制链接]
502|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
poison0|  楼主 | 2022-7-29 21:58 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
STM32F103c8t6超频

STM32F103C8T6官方说的主频为72MHz。但为了好奇,我决定去网上买一个STM32f103最小系统进行超频。如下图所示:


使用特权

评论回复
沙发
poison0|  楼主 | 2022-7-29 22:05 | 只看该作者
像上图这种最小系统,一般都有一个LED灯,接在STM32的PC13上。一开始,我想通过LED的闪烁来看出主频是否变化,但视力有限,看不出72M和112M主频的变化。

使用特权

评论回复
板凳
poison0|  楼主 | 2022-7-29 22:05 | 只看该作者
所以我用逻辑分析仪来看高低电平的脉宽。如下图所示:

使用特权

评论回复
地板
poison0|  楼主 | 2022-7-29 22:06 | 只看该作者

使用特权

评论回复
5
poison0|  楼主 | 2022-7-29 22:10 | 只看该作者
因为从STM32的时钟树可以看出,STM32的系统时钟是通过外部晶振倍频到72MHz频率的,所以我们只要修改其倍频值,那么就可以超频。

使用特权

评论回复
6
poison0|  楼主 | 2022-7-29 22:21 | 只看该作者

使用特权

评论回复
7
poison0|  楼主 | 2022-7-29 22:22 | 只看该作者
上图的的红色框框就是对外部晶振(这里是8MHz的外部晶振)进行倍频,即8MHz * 9 =72MHz的系统主频。所以主要是修改这个PLLMul,这样主频就会改变。

使用特权

评论回复
8
poison0|  楼主 | 2022-7-29 22:23 | 只看该作者
一开始,我没有改变频率,直接就是9倍频。然后我写了一个延时函数,在主循环里面,通过对io口的高低电平的控制,然后调用这个延时延时,通过逻辑分析仪来看其脉宽。
延时函数:

使用特权

评论回复
9
poison0|  楼主 | 2022-7-29 22:24 | 只看该作者
void Delay_ms(int n)
{
        int i,j;
       
        for(i=n;i>0;i--)
                for(j=12000;j>0;j--);
}

使用特权

评论回复
10
poison0|  楼主 | 2022-7-29 22:27 | 只看该作者
高低电平的控制:
while(1)
{
        PIN = 0;
        Delay_ms(500);
        PIN = 1;
        Delay_ms(500);
}

使用特权

评论回复
11
poison0|  楼主 | 2022-7-29 22:28 | 只看该作者
当我设为9倍频时,即72MHz的主频时,上升沿和下降沿之间的脉宽为750ms。

使用特权

评论回复
12
poison0|  楼主 | 2022-7-29 22:28 | 只看该作者

使用特权

评论回复
13
poison0|  楼主 | 2022-7-29 22:33 | 只看该作者
当我设为13倍频时,即104MHz的主频时,上升沿和下降沿之间的脉宽为519ms。 并且此时就算是LED还可以闪烁。

使用特权

评论回复
14
poison0|  楼主 | 2022-7-29 23:01 | 只看该作者

使用特权

评论回复
15
poison0|  楼主 | 2022-7-29 23:04 | 只看该作者
但是当我设为14倍频时,即112MHz的主频时,上升沿和下降沿之间的脉宽为482ms。 而LED却不闪烁了。但可以通过逻辑分析仪可以看到io口电平还是改变的。

使用特权

评论回复
16
poison0|  楼主 | 2022-7-29 23:06 | 只看该作者

使用特权

评论回复
17
poison0|  楼主 | 2022-7-29 23:16 | 只看该作者
而15倍频的话,即主频为120Mhz,程序基本运行不了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

626

帖子

2

粉丝