×
单片机 > 单片机程序设计 > 详情

STM32 TIMER2的使用

发布时间:2020-09-03 发布时间:
|

配置定时100us的配置如下:



  1. TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;  

  2. RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);  

  3. TIM_DeInit(TIM2);  

  4. TIM_TimeBaseStructure.TIM_Period = 1;//59999;//1199;//9999;  

  5. TIM_TimeBaseStructure.TIM_CounterMode =  TIM_CounterMode_Up;  

  6. TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;  

  7. TIM_TimeBaseStructure.TIM_Prescaler=3499;//分频35999  

  8. TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);  

  9. TIM_ClearFlag(TIM2,TIM_IT_Update);  

  10. TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);  

  11. TIM_Cmd(TIM2, DISABLE);  



//((1+TIM_Prescaler )/f_soc)*(1+TIM_Period )=((1+7199)/72M)*(1+9999)=1秒

time = ((1+3499)/72M)*(1+1) =100us :f_soc =72MHz

看STM32的时钟树可以知道 Timer的f_soc= APB1_Clk * APB1_Prescaler

APB1_Clk = AHB_Clk /APB1_Prescaler

AHB_CLk = Sysclk /AHB_Prescaler


我这里的时钟设置 Sysclk = 72MHz

AHB_Prescaler = 1 => AHB_Clk = 72MHz

因为 APB1_CLK_max = 36MHz

所以  APB1_Prescaler =2

于是 Timer2 的f_soc = 72MHz




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址