OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9662|回复: 11

有关预分频的问题,求大虾们指导!

[复制链接]

6

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2014-4-30
在线时间
0 小时
发表于 2014-5-8 11:44:32 | 显示全部楼层 |阅读模式
5金钱
在看定时器中断实验的时候,里面有一个预分频的概念,感觉有一些疑惑;
STM3 的通用 TIMx里面有一个16 位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为 1~65535 之间的任意数值。
然后CK_INT时钟是从 APB1 倍频的来的,但是问题来了,为什么除非 APB1 的时钟分频数设置为 1, 否则通用定时器 TIMx 的时钟
是 APB1 时钟的 2 倍,当 APB1 的时钟不分频的时候,通用定时器 TIMx 的时钟就等于 APB1的时钟。
为什么预分频器可以启动倍频,预分频到底和分频有什么关系?
希望哪位大虾能够详细说一下预分频这个概念,非常感谢!

最佳答案

查看完整内容[请看2#楼]

除非 APB1 的时钟分频数设置为 1, 否则通用定时器 TIMx 的时钟 是 APB1 时钟的 2 倍 这是在进入定时器预分频器之前的处理. 这个2倍是有作用的. 有了这个2倍关系,可以让APB1上面的定时器都工作在72M,从而可以获得更高的运行频率. 否则默认的APB1是36M,那么定时器就只能工作在36M频率下了. 有了2倍频处理,那么默认所有定时器(TIM1/TIM8在APB2上面,默认是72M了),都可以工作在72M ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-8 11:44:33 | 显示全部楼层
除非 APB1 的时钟分频数设置为 1, 否则通用定时器 TIMx 的时钟
是 APB1 时钟的 2 倍
这是在进入定时器预分频器之前的处理.
这个2倍是有作用的.
有了这个2倍关系,可以让APB1上面的定时器都工作在72M,从而可以获得更高的运行频率.
否则默认的APB1是36M,那么定时器就只能工作在36M频率下了.
有了2倍频处理,那么默认所有定时器(TIM1/TIM8在APB2上面,默认是72M了),都可以工作在72M频率下,这不是很好么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2014-4-30
在线时间
0 小时
 楼主| 发表于 2014-5-8 11:46:33 | 显示全部楼层
在线等~~~~
回复

使用道具 举报

6

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2014-4-30
在线时间
0 小时
 楼主| 发表于 2014-5-8 14:26:39 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
能够让APB1上的定时器在72M的频率下工作这点我知道,我只是想知道为什么预分频系数能够实现倍频作用,预分频难道不是和分频是一样的么,应该是实现的分频的作用啊,为什么会出现倍频呢?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-8 23:19:51 | 显示全部楼层
回复【4楼】乐观的喝咖啡:
---------------------------------
它肯定有另外一个倍频器了....
一定要刨根的话,可以发邮件问问ST的芯片设计人员
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2014-4-30
在线时间
0 小时
 楼主| 发表于 2014-5-11 15:57:51 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
非常感谢
回复

使用道具 举报

42

主题

208

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
金钱
383
注册时间
2014-6-12
在线时间
35 小时
发表于 2014-7-7 19:29:03 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
原子哥,mini版的那个APB1预分频系数设置库函数在哪阿,我怎么找不到
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-7-7 23:40:59 | 显示全部楼层
回复【7楼】郭刘阳:
---------------------------------
 库函数不熟。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

42

主题

208

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
金钱
383
注册时间
2014-6-12
在线时间
35 小时
发表于 2014-7-8 07:48:41 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
恩恩,没事,还是感谢原子哥
回复

使用道具 举报

8

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
210
金钱
210
注册时间
2014-9-29
在线时间
13 小时
发表于 2014-9-29 17:08:50 | 显示全部楼层
回复【7楼】郭刘阳:
---------------------------------
在system_stm32f10x.c SetSysClockTo72()中定义有,你仔细找找
回复

使用道具 举报

42

主题

208

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
383
金钱
383
注册时间
2014-6-12
在线时间
35 小时
发表于 2014-9-29 19:56:00 | 显示全部楼层
回复【10楼】lblly:
---------------------------------
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2015-12-30
在线时间
1 小时
发表于 2016-1-12 18:20:09 | 显示全部楼层
呵呵,是这么回事,APB1把72M频率给分频了,分后最大为36M,而定时器的时钟不是直接来自APB1,是APB1是经过一个倍频器后给定时器做为时钟。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 18:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表