1 在STM32Cube中激活LPTIM7 v, X& H: @, Y
% f4 a7 u4 p# u% {5 P3 N5 z% A' i" V0 x; h& i2 d7 @
一.LPTIM超时产生中断详解
. W% x) l' H3 d# T2 D使用的库函数为:: e+ S7 U: W; I0 C6 T4 j( G- h
- HAL_StatusTypeDefHAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period,uint32_t Timeout)
复制代码 定时时间的计算公式:* F) B& D! Q# [! L* @/ s3 o) }- h& E
6 d) h! y: N8 R% b4 b$ Q
- <p> /* Timeout = (Compare + 1) / LPTIM_Clock</p><p>" v% p3 i) }: J' ~1 g( F3 u$ R
- </p><p> Timeout = (Period + 1) / LPTIM_Clock</p>
复制代码 $ j/ L$ Q$ z3 q( n
LPTIM_Clock:低功耗定时器时钟:在CUBU软件中4 I6 r) z0 x( T4 z
, ~4 t" B1 M7 } ~7 ?
" O. J; N( r8 A: w
具体使用到哪一个时钟,就选这个时钟作为计算 例如:16Mhz
2 y3 @& p' `' r C U0 J定时1s: 1s=( Period+1)/16000000
/ Q, g9 j6 E8 v! C2 i: E0 L使用的中断函数为:
2 M L/ Q' Z1 E7 x- /**
3 U. A0 Q, r9 s; o) L0 y7 _& U
; V& d. A; R+ _+ N* t$ G- *@brief Compare match callback in nonblocking mode
& V$ q7 {% t9 X$ }/ w
X! H' F" E* f) J+ U! g- *@param hlptim : LPTIM handle9 F8 A7 [2 w5 S9 G
8 d0 O9 C0 c, c- *@retval None
/ p6 V+ o4 q4 `9 n7 l
5 G$ a e5 z1 Y2 n& y. c- */
' O4 D+ v# t, D3 l' q1 g
) W% J0 Y3 y8 l/ Y2 p" v- void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef*hlptim)+ T! j0 Y& i7 f
" A3 B/ ^. `$ |+ Z/ G! ~- {! D' T- l* G( p5 o; W& U$ g
- /*Timeout was reached, turn on LED2 */
0 C8 E& _7 k9 K# F+ i - ' M8 h( B4 h+ y+ B+ N7 k0 B
- //这里写中断服务函数
# A3 x! g% ]5 Y: T [ - }
复制代码 + ?* r+ {9 E6 {9 T g3 q: T5 l% o
! y$ o: v) ~" S' Q9 X! W ?; _8 V
4 t7 j2 z$ d6 r2 m: _% D, { |