1 在STM32Cube中激活LPTIM
+ q! A1 q# n! D3 A6 z3 r1 Y& o* X% @# `2 W9 H x& z7 i5 j
4 O3 i8 E9 S7 m( }8 r' I
一.LPTIM超时产生中断详解" O, Y. {* o$ I' K( l$ O6 n% x
使用的库函数为:( ^! l/ l0 e b' e: c
- HAL_StatusTypeDefHAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period,uint32_t Timeout)
复制代码 定时时间的计算公式:
& z) G# U, }8 g2 v
0 s" S1 Z8 z4 I+ G: g- <p> /* Timeout = (Compare + 1) / LPTIM_Clock</p><p>
|* ^* A2 W1 S5 p H* Y - </p><p> Timeout = (Period + 1) / LPTIM_Clock</p>
复制代码
9 v* |- T7 W+ D+ h" cLPTIM_Clock:低功耗定时器时钟:在CUBU软件中
% ]' u! m1 _+ ?" u8 _: u" Q% V! \. P$ p+ Z; s, f: f: P
. J6 N2 C3 F* B. j& J具体使用到哪一个时钟,就选这个时钟作为计算 例如:16Mhz1 K9 R' ^; ?2 S$ Q
定时1s: 1s=( Period+1)/16000000 & b2 c" |& }# ?
使用的中断函数为:
. G: @. `; G3 z% H- /**' `3 A3 y) m3 A/ t9 w( \
- % {6 v( T; n1 l6 ~" Y! o# K* L5 P. Z, M
- *@brief Compare match callback in nonblocking mode$ Z' u2 I4 _6 |6 t
2 d$ y& @$ \' Y4 e3 R/ f4 y6 a- *@param hlptim : LPTIM handle1 k+ X- L' }" |) E7 o5 R; ?3 ~
' {( @& X4 u" I* K8 D% R! q, e- *@retval None& t, n+ [8 K# l
- ; k) f, ]; O% t. M
- */8 W* ` j# ]& a o' X6 F$ X
- 6 a, Y: ]5 N4 I8 O, h# j
- void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef*hlptim)
8 j( h) @# D! _% c- `( i4 @, I5 g2 ^
/ u) K% U* d4 @1 ^. N- {
/ w) C! ]: @8 ^$ a" t a - /*Timeout was reached, turn on LED2 */# Q' i- F4 ?& ?: d4 a) `
( f& f+ l. M* r$ G- //这里写中断服务函数* v& w6 K6 b' H" G* I
- }
复制代码 8 N* j5 Q! n/ u @* q2 X; i
3 I- Y3 E2 U9 g- e& M/ N
' T# V8 c4 d: t! W |