1 在STM32Cube中激活LPTIM
: E) P6 a) x# Q) L4 P; A1 z/ i4 [* C+ L6 j2 A6 m$ Y
- ]. O; h& _4 J/ b0 D6 _一.LPTIM超时产生中断详解- ]3 j, c- G# I1 ?
使用的库函数为:& v" i7 i$ [ Y5 I$ N3 @
- HAL_StatusTypeDefHAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period,uint32_t Timeout)
复制代码 定时时间的计算公式:9 ~( {6 h) G" f+ p0 l; b
+ P, w8 J4 r/ L0 w1 c; r3 y# K
- <p> /* Timeout = (Compare + 1) / LPTIM_Clock</p><p>4 X# G! z+ K( P1 J, u8 V
- </p><p> Timeout = (Period + 1) / LPTIM_Clock</p>
复制代码 $ f/ {$ E4 p0 }
LPTIM_Clock:低功耗定时器时钟:在CUBU软件中' O: t# w' r' z+ ~0 G3 D
9 m2 C+ y. F! L1 @ l
0 q6 _# j' b- o; [3 ]! k具体使用到哪一个时钟,就选这个时钟作为计算 例如:16Mhz
8 h! ~( e% c: d# Q8 p; L定时1s: 1s=( Period+1)/16000000 0 p0 ]8 c t$ L1 ]9 v' T$ d" O, ^
使用的中断函数为:
$ k" k# d2 z$ d' }1 { e+ x( ]- /**; l) e; M, v N& {7 o
4 Z" B9 `8 z. H' F- W' y. L- *@brief Compare match callback in nonblocking mode& |" a; `* | z* ?! @& K
- & w J0 \% H8 X0 K
- *@param hlptim : LPTIM handle1 g9 z2 y3 {0 ]! ~. |/ _
- 4 d7 ^* z- I4 u; e q B
- *@retval None$ m3 B' f( @$ p: ~) ?
- & Z$ w- ^ S2 Y" \1 O3 O
- */& Z7 h- T1 k9 x
* A' z* ~+ n- q8 c+ C; f9 }- void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef*hlptim)3 }4 `0 @3 x' X( O
% L' M3 x8 ?8 h; Y8 ~& T- {( o. M; E* W: R% h
- /*Timeout was reached, turn on LED2 */
, C0 v7 i( V6 ^* `3 I
- r7 @6 E3 R; U3 l+ F2 |- //这里写中断服务函数
7 U7 g3 n/ V- v3 k( a - }
复制代码
( R; c( j8 G1 o
$ E+ L9 \7 ]+ O. m9 n+ o
4 d4 o2 S! {* t2 S: Q" t# A |