历史上的今天
今天是:2025年03月02日(星期日)
2021年03月02日 | STM32定时器时钟源问题
2021-03-02 来源:eefocus
STM32中有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生。其它6个为普通定时器,时钟由APB1的输出产生。
下图是STM32参考手册上时钟分配图中,有关定时器时钟部分的截图:

从图中可以看出,定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器,图中的蓝色部分。
下面以定时器2~7的时钟说明这个倍频器的作用:当APB1的预分频系数为1时,这个倍频器不起作用,定时器的时钟频率等于APB1的频率;当APB1的预分频系数为其它数值(即预分频系数为2、4、8或16)时,这个倍频器起作用,定时器的时钟频率等于APB1的频率两倍。
假定AHB=36MHz,因为APB1允许的最大频率为36MHz,所以APB1的预分频系数可以取任意数值;当预分频系数=1时,APB1=36MHz,TIM2~7的时钟频率=36MHz(倍频器不起作用);当预分频系数=2时,APB1=18MHz,在倍频器的作用下,TIM2~7的时钟频率=36MHz。
有人会问,既然需要TIM2~7的时钟频率=36MHz,为什么不直接取APB1的预分频系数=1?答案是:APB1不但要为TIM2~7提供时钟,而且还要为其它外设提供时钟;设置这个倍频器可以在保证其它外设使用较低时钟频率时,TIM2~7仍能得到较高的时钟频率。
再举个例子:当AHB=72MHz时,APB1的预分频系数必须大于2,因为APB1的最大频率只能为36MHz。如果APB1的预分频系数=2,则因为这个倍频器,TIM2~7仍然能够得到72MHz的时钟频率。能够使用更高的时钟频率,无疑提高了定时器的分辨率,这也正是设计这个倍频器的初衷。
上一篇:STM32之SRAM调试
下一篇:基于STM32的红外遥控重点解析
史海拾趣
|
always@(posedge iCLK or negedge iRST) if(!iRST) max 3; // 6/16 0:max >4; // 5/16 1:max >2; // 4/16 2:max >4; // 3/16 ...… 查看全部问答> |
|
小弟现在要将wm5做的一个项目转移到wince5下,希望有经验的兄弟们指点一下。 应该怎么做,要新建项目码?那么多文件怎么办? 项目是用vs2005 c++做的。… 查看全部问答> |
|
美国Ligos公司是一家专门从事音频,视频控件开发的厂商,所生产的音频,视频类控件功能相当强大,为软件产品的开发提高了效率,也节约了成本,在全球都是享有地位的! 在慧都控件网能买到!重庆慧都科技有限公司---提供专业的控件产品咨询,代理全 ...… 查看全部问答> |
|
我用的是MSPF1611 MCLK=7.3728MHZ现在想产生一个最高频率为2M的方波,程序我是这样写的 void main(void) { WDTCTL = WDTPW +WDTHOLD; // Stop WDT P3DIR|=0x04; P3OUT|=0x04; CCR0 = 4; // ...… 查看全部问答> |
|
10路由器,40终端节点的网络,组网一段时间后无法发送向协调器发送数据 协议栈2.5 网络结构 1 协调器,10路由器,40终端节点。 组网后协调器向所有路由器和终端节点广播数据,路由和终端节点收到数据后回复。 组网10分钟左右,路由器和终端节点可以收到协调器广播数据,但是回复数据协调器无法收到 重启协调器,可以 ...… 查看全部问答> |
|
silkscreenOverComponentPads 减小间距可以解决问题 。可是我在不同的pcb文件里添加元件却是截然不同的 前提都是我建立的文档 规则 应该是一样的 创建时间有半年间隔 现在就出现这样的问题 [ 本帖最后由 ab_cd 于 ...… 查看全部问答> |




