1 在STM32Cube中激活LPTIM% A4 P8 q% Q) f8 I( s6 N8 F' N
8 e- L5 z2 w+ a* g! s; O; P p% O6 ?8 q
一.LPTIM超时产生中断详解0 D; ?8 M2 H: K, a c. c
使用的库函数为:
. ]9 A7 D- r5 D- d& Z8 c- HAL_StatusTypeDefHAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period,uint32_t Timeout)
复制代码 定时时间的计算公式:
1 ~; a2 w2 U- Y+ [4 T
. D1 }; c& u, m- <p> /* Timeout = (Compare + 1) / LPTIM_Clock</p><p>
& Z4 e! h3 E) |+ Y" n6 ` - </p><p> Timeout = (Period + 1) / LPTIM_Clock</p>
复制代码 W% V" @$ H$ O( |* E1 F( D1 U
LPTIM_Clock:低功耗定时器时钟:在CUBU软件中
$ T" X+ S, j! o$ X" Q2 K/ `
. e4 ^1 v. Q% ]7 E+ I. M6 \" b7 T" L7 s. t
具体使用到哪一个时钟,就选这个时钟作为计算 例如:16Mhz
; _* f* a3 M0 j3 ~4 u' W定时1s: 1s=( Period+1)/16000000 / V0 _2 \3 X) A5 I& O! x
使用的中断函数为:$ n1 `9 s2 g5 v& w
- /**
8 B; b. r6 h" E, ^2 P - : w9 T* h; n5 I$ Z# ?' Q0 m* p
- *@brief Compare match callback in nonblocking mode; G: D% |* U0 a+ e/ \5 U7 B9 ]
- / Y. Z4 e( X3 D% C) Q' f
- *@param hlptim : LPTIM handle
! s9 _/ n) E2 C# N! T/ ], w R - - V! W$ Z9 ^! S W1 A
- *@retval None
2 K" k$ ?5 F9 o2 `8 A - : I: B6 }* c9 t' w1 N
- */
1 z( U# G" i8 C: d& K w+ K - ' W4 {* o5 w+ p# I
- void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef*hlptim)
# e9 W3 J# x$ e: o, } - ; G: H8 {0 f2 Z* T
- { F. t/ z/ n& o
- /*Timeout was reached, turn on LED2 */; j& T3 I4 k- j+ @' Q5 S. @
- % n( ^$ m9 K) }* N7 Z
- //这里写中断服务函数
9 I( R5 R# k& p ~ - }
复制代码 ( [1 N$ t0 {1 x$ X$ m( w2 c- R
' g* C7 Z% |; H
/ i2 T6 q7 q9 c" y: t |