1 在STM32Cube中激活LPTIM9 i/ [3 \6 g4 q, L% E, m
. d* ~* w7 w$ l/ }/ j7 _$ V. n( }, M7 R7 `7 d9 P
一.LPTIM超时产生中断详解
) p5 \: [- L+ `# w使用的库函数为:
4 F7 g; ~! P4 {1 o/ F* l8 c2 w- HAL_StatusTypeDefHAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period,uint32_t Timeout)
复制代码 定时时间的计算公式:
4 v9 c3 e$ `* V" H/ D+ J# L8 q" w2 r% B: s( W) j+ ^
- <p> /* Timeout = (Compare + 1) / LPTIM_Clock</p><p>7 q1 F( Q* \' s$ F- E" `
- </p><p> Timeout = (Period + 1) / LPTIM_Clock</p>
复制代码
/ ^: j( D. {$ `4 cLPTIM_Clock:低功耗定时器时钟:在CUBU软件中
. G" V: {6 A* @1 e
0 m$ g4 U) C6 [' E% Z
: \! U0 O+ m$ Q具体使用到哪一个时钟,就选这个时钟作为计算 例如:16Mhz
. _: d& T* ~) B0 R7 Z% R定时1s: 1s=( Period+1)/16000000 9 z# q3 n' y4 \, t8 @/ n
使用的中断函数为:
2 Q' v3 r, T/ ^: w+ H6 B- /**% E$ u0 J: y* G& R% K7 [: x
- ! H3 l! ]5 r5 C2 j7 f+ I; z$ w
- *@brief Compare match callback in nonblocking mode
: N$ E5 e" x, R& t0 b) _
z/ V. ?/ A8 Y2 g- *@param hlptim : LPTIM handle8 q& V5 k- s7 i% h2 y. L- g
`* F3 I. z E' D/ I4 q- *@retval None2 q4 m2 }6 [4 z, H) G
6 \9 d+ [$ n/ Q+ T1 H- */
1 M7 d4 @: O# e8 C% }( a" G! v
2 c% i* | Y. J6 i6 A) b- void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef*hlptim)
& D# D& w% E7 S0 T' p - 8 k, W0 I( |6 R+ h" p- @' l; ~% ]
- {: b6 e+ M4 S" h# A9 ]% d' l; ^3 }# Q
- /*Timeout was reached, turn on LED2 */
~* h8 I q/ z# c% t+ Q5 Q
5 o8 p6 Q; L3 u$ T$ G x8 t8 A4 Z5 [- //这里写中断服务函数
9 j) W" x8 K, o - }
复制代码
) g% `# l6 Z( r8 \" J4 W% u; a6 m# T
( b* T: l% G7 j1 G4 K
|