定时中断中的APB1预分频系数?

2019-07-20 23:51发布

在定时器中断中,
#include "timer.h" 
#include "led.h" 
//通用定时器 3 中断初始化 
//这里时钟选择为 APB1 的 2 倍,而 APB1 为 36M 
//arr:自动重装值。 
//psc:时钟预分频数 
//这里使用的是定时器 3! 
void TIM3_Int_Init(u16 arr,u16 psc) 

        TIM_TimeBaseInitTypeDef    TIM_TimeBaseStructure; 
  NVIC_InitTypeDef NVIC_InitStructure; 
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //①时钟 TIM3 使能 
           
//定时器 TIM3 初始化 
  TIM_TimeBaseStructure.TIM_Period = arr;        //设置自动重装载寄存器周期的值     
  TIM_TimeBaseStructure.TIM_Prescaler =psc;    //设置时钟频率除数的预分频值 
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割 

上面这一句话,APB1最大频率是36Mhz,这个在初始化的时候就已经设置了的,如果用库函数默认就是36Mhz,在main函数运行前就设置了,一般可以不管。
默认是36MHZ,那么现在是
 APB1 的 2 倍,这个去哪里设置这个APB1预分频系数。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
坐看风
1楼-- · 2019-07-21 22:11
 精彩回答 2  元偷偷看……
轻轻一点
2楼-- · 2019-07-22 03:06
皮皮logo 发表于 2015-6-5 22:11
回复【3楼】安安耶_:
---------------------------------
通过库函数可以找到,AHB时钟设置成72MHz,然后设 ...

一语道破!我也迷惑了半天,看资料头都看大了,哈哈
yaosongjin
3楼-- · 2019-07-22 08:13
皮皮logo 发表于 2015-6-5 22:11
回复【3楼】安安耶_:
---------------------------------
通过库函数可以找到,AHB时钟设置成72MHz,然后设 ...

朋友你好,我也在迷惑这个问题,初始化里确实设置了APB1为2分频,但是我改成不分频时定时器的时钟也是72M,改成4分频时定时器时钟才是36M,不知道你试过没有呢?
wshli1324
4楼-- · 2019-07-22 13:21
不分频 后面就不会在倍频了

一周热门 更多>