硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3886|回复: 4
收起左侧

请教关于STM32F429定时器时钟频率的问题

[复制链接]

79

主题

191

回帖

428

积分

高级会员

积分
428
发表于 2016-9-8 22:34:11 | 显示全部楼层 |阅读模式
STM32F429,外部8M晶振,系统主频设置为168M,那么APB1和APB2的频率也随之变了么?TIM2~TIM14定时器的频率默认最高频率是45还是42?? QQ截图20160908222723.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2016-9-9 09:26:15 | 显示全部楼层
APB1总线是主频的4分频,APB2是主频的2分频,比如主频是168MHz的话,APB1就是42MHz,APB2是被MHz。
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2016-9-9 10:23:42 | 显示全部楼层
这岂不是和407频率一样了??如果这样配置,对429来说,白白浪费了一些主频。。。。。。。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107101
QQ
发表于 2016-9-9 10:25:23 | 显示全部楼层

回 天马行空 的帖子

天马行空:这岂不是和407频率一样了??如果这样配置,对429来说,白白浪费了一些主频。。。。。。。 (2016-09-09 10:23)
是的。定时器的最高主频有些区别。
---------------------------------------------------

system_stm32f4xx.c 文件中 void SetSysClock(void) 函数对时钟的配置如下:

        HCLK = SYSCLK / 1     (AHB1Periph)
        PCLK2 = HCLK / 2      (APB2Periph)
        PCLK1 = HCLK / 4      (APB1Periph)

        因为APB1 prescaler != 1, 所以 APB1上的TIMxCLK = PCLK1 x 2 = SystemCoreClock / 2;         如果主频是168MHz,就是84MHz
        因为APB2 prescaler != 1, 所以 APB2上的TIMxCLK = PCLK2 x 2 = SystemCoreClock;              如果主频是168MHz,就是168MHz

        APB1 定时器有 TIM2, TIM3 ,TIM4, TIM5, TIM6, TIM6, TIM12, TIM13,TIM14
        APB2 定时器有 TIM1, TIM8 ,TIM9, TIM10, TIM11
回复

使用道具 举报

79

主题

191

回帖

428

积分

高级会员

积分
428
 楼主| 发表于 2016-9-9 16:59:49 | 显示全部楼层
谢谢!回答很详细。。。。。彻底明白了。。。。。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-18 04:11 , Processed in 0.174480 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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