1 在STM32Cube中激活LPTIM
, B: @8 L, l. O7 Z7 T* t$ o, \+ s, w; Q2 j8 B3 H9 a" n ~
7 G, Z" \, X! g T
一.LPTIM超时产生中断详解4 z* O* k+ \6 |! d9 G
使用的库函数为:
* O) Z l N- J" d+ f5 q- HAL_StatusTypeDefHAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period,uint32_t Timeout)
复制代码 定时时间的计算公式:
$ j$ D7 k. Y) O- p& E8 ^& G8 n# x# A
- <p> /* Timeout = (Compare + 1) / LPTIM_Clock</p><p>" i- q& b4 i3 I4 u4 J( p
- </p><p> Timeout = (Period + 1) / LPTIM_Clock</p>
复制代码 / P$ V8 r; }# v% Q3 A
LPTIM_Clock:低功耗定时器时钟:在CUBU软件中
2 P# H: b6 @, j( ~& a# `, V. N9 M5 Z9 E6 A' t9 N$ L2 Q
/ a& w' w& L9 f y6 ~
具体使用到哪一个时钟,就选这个时钟作为计算 例如:16Mhz6 f4 Y* a; j( g8 q
定时1s: 1s=( Period+1)/16000000
M- U) B/ S4 W# m) W; v使用的中断函数为:: J; w2 k' @1 Z6 v6 B0 |
- /**/ k; l# O, \, e- Y, t
- - M, F" B7 h& @7 j4 H
- *@brief Compare match callback in nonblocking mode
! H# j3 p/ z& O1 `, b* O8 t - : Q: u& d2 Y4 [( y9 ^& Y3 B
- *@param hlptim : LPTIM handle3 N9 f3 g5 E7 r* `! Q
5 w {* @% S* o! ?! T/ t- *@retval None2 E" \9 ]+ g, |; a# S5 `4 f5 t# N
0 ]* N2 A0 F4 ?1 A- */0 L1 G$ O$ [( S$ U5 _
& M# }0 U5 R8 U1 A9 x1 D( s- void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef*hlptim)
1 b! l; b1 |. }+ _! u
2 T* k1 C& j4 Y/ ~3 Q- {5 k. C S6 M7 Q' ]4 R2 y
- /*Timeout was reached, turn on LED2 */
- B& w' ]+ l x; r: @
$ b+ [ L" s* G1 }9 b- //这里写中断服务函数6 E; |$ X: d2 O, a" Q
- }
复制代码 6 u0 `, d/ W. [1 W+ P5 D
- o5 y, K" [+ {8 q
: D* f! h- { M5 W1 u1 x9 j- Q |