定时中断中的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条回答
安安耶_
2019-07-21 09:18
回复【2楼】lycreturn:
---------------------------------
这个我知道,我现在APB1(*1/*2) -- CK_PSC(/n)--CK_INT ,我现在想知道前面APB1的预分频系统是哪里设置,哪个库函数,APB1预分频系数通过CFGR寄存器的PPRE1几个位来决定,但是原子代码没有只是一笔带过//这里时钟选择为 APB1 的 2 倍,而 APB1 为 36M ,这个我想知道是在哪里设置

一周热门 更多>