|
定时器时间计算公式: Tout = ( ( psc+1) / Tclk ) * (arr+1)# {+ c, O0 G& I( u Tout : 溢出时间值(μs) psc: 预分频值(例如系统时钟为72MHz,APB分频1,则该值为7200) Tclk: 输入时钟(MHz)5 o* d* m' A z arr: 自动装载值(根据需要溢出的时间,通过预分频值和时钟倒推出自动装载值为多少)6 n4 l5 {( ?8 C! ~* @ 例如:需要TIM2每 1s 中断一次(APB为1分频)9 g; l Y& q! s4 C 1000000μs = ((7199+1)/72MHz) * (arr+1) -----> 由此可求出 arr的自动装载值为99992 T2 f. [3 i5 N) u I' J ; Z) G) @5 \! J0 E, ^0 q 关于TIM2 ~ TIM7 的初始化 1. 使能该定时器的时钟(TIM2 ~ TIM7是挂载在APB1下) , v6 w3 M2 n5 A9 s, P |! p 2 X+ c% r% Z; h3 A+ \+ R RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);//使能或者失能APB1外设时钟 7 D, k' H5 L) h - V# X* H* o9 P, \ 1. 初始化定时器* V; U% ?. V9 \$ i( |5 w: H$ E7 | TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_Prescaler = psc;//预分频值) E; c( c6 n" T, }+ O. I! g1 u TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数模式 TIM_TimeBaseStructure.TIM_Period = arr;//在下一个更新事件装入活动的自动重装载寄存器周期的值 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;//TDTS = Tck_tim. x" X9 J/ f) J& z2 }! ?1 t TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);//初始化 1. 初始化NVIC5 t+ K8 |; g* J" ~0 T. F 8 C8 ~8 a3 P. F9 Q1 g # v) A/ P: b* D* i8 q$ P NVIC_InitTypeDef NVIC_my_init ;! T X$ X" w2 s, l4 g/ ^) R NVIC_my_init.NVIC_IRQChannel = TIM2_IRQChannel ; NVIC_my_init.NVIC_IRQChannelPreemptionPriority = 0 ; NVIC_my_init.NVIC_IRQChannelSubPriority = 3 ; NVIC_my_init.NVIC_IRQChannelCmd = ENABLE ;* p* B4 I% R3 w0 H2 E NVIC_Init(&NVIC_my_init) ; 7 V& E! b2 E. z+ c9 m) m1 E; B5 d 1. 打开定时器中断 ( k( R. l+ U* L) V- Q 1 ^' ?. L+ }3 I% g' g$ }3 [7 T TIM_ITConfig(TIM2, TIM_IT_Update,ENABLE);. q5 K9 x1 v/ i) M% ] ; u* Q+ D; j/ c+ x& H( B7 [( } 1. 打开定时器1 A9 E+ z Q& N4 l9 i; W 4 B9 f( U# @& ]5 [9 W0 j TIM_Cmd(TIM2, ENABLE);/ ?& Z* a8 E" y. D- M1 `6 e% w. q 1. 编写定时中断函数 void TIM2_IRQHandler(void) {* L) g! Z. l5 C- V7 [( p9 P if(TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET){, @6 b0 f( l3 a. o6 v3 W TIM_ClearITPendingBit(TIM2, TIM_IT_Update); // 清空中断标志位* k; h0 b2 e6 b& t5 P //函数编写----尽量只设置标志位,避免中断嵌套 }) w: ^2 c6 r2 N4 S }* o' l$ @+ {( y3 U: v 6 d, }. A U2 P3 a5 _ |
| LZ最近转载了不少资料过来呀 |
| 楼主的计算方式似乎太复杂了吧。 |
微信公众号
手机版