1 在STM32Cube中激活LPTIM
$ T8 I/ w- [) D X+ H i& V+ K: X5 D' t) D! ^7 \( R( }
/ o0 u2 r8 O/ j( J一.LPTIM超时产生中断详解$ j& r* h9 l& A
使用的库函数为:8 K. g' |% {" R; e% c
- HAL_StatusTypeDefHAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period,uint32_t Timeout)
复制代码 定时时间的计算公式:( K5 t S/ ^" H' ^
2 a& d+ ?: ~: m) i, ]
- <p> /* Timeout = (Compare + 1) / LPTIM_Clock</p><p>
0 U. U9 ?- n7 u - </p><p> Timeout = (Period + 1) / LPTIM_Clock</p>
复制代码
- \" F6 v7 ]# d. i' `9 n6 B: O; [LPTIM_Clock:低功耗定时器时钟:在CUBU软件中% A; m+ H" ?! p
/ r: x0 T! S' \2 I' E; l
2 r- H+ Y1 O" t$ C; A
具体使用到哪一个时钟,就选这个时钟作为计算 例如:16Mhz0 p, a! T: t$ I% g* }) `
定时1s: 1s=( Period+1)/16000000
% V z i$ g% [+ `; N; d6 F( G使用的中断函数为:8 {: v* U7 d3 ]* F
- /**
( V3 e, ]" g. o W% W7 M6 t% u
; A+ y1 N- m, r% b- *@brief Compare match callback in nonblocking mode( D. Q$ s+ g- W8 m8 o7 p4 P
. U" z% p7 W8 @4 J; U# A' H- *@param hlptim : LPTIM handle
5 ~% D- D- a4 _* r$ g6 o, B5 y2 n - : q+ a7 {* p% ]7 n2 Z
- *@retval None
3 u/ M. L R- C( } D4 T - 6 h- k" M: T( |+ Z5 }+ X5 r" l
- *// O: n/ d% e8 T7 V; u8 \ \6 r
- 9 d0 i. ~' r7 ^# a' x
- void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef*hlptim)+ N4 m- ~' `& X
- 2 X7 ^) \( ~( W; D8 R2 P& P3 @5 g
- {
4 C- z/ i7 @6 R/ D6 v/ r' s - /*Timeout was reached, turn on LED2 */
2 f; M1 Z2 N6 S/ c% Y1 a - : D% \% k+ j% q/ i/ [4 j3 `
- //这里写中断服务函数
3 {4 H) L7 @3 _4 o4 L - }
复制代码
& y; q( h& L9 M5 [% h; B" E$ R7 Q# e2 x+ e- C
2 P- g. X8 o, g0 p6 {5 T$ S) J0 Q
|