1 在STM32Cube中激活LPTIM
) P. `( ~% d+ L0 K! ^9 t
2 R: P5 E: S) X' D" d. Q* N8 o* @4 e/ O" D
一.LPTIM超时产生中断详解
& u8 d1 B7 {. X1 P3 @使用的库函数为:' x' ~$ v5 U$ q# L+ i6 F1 l) B7 C- a
- HAL_StatusTypeDefHAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period,uint32_t Timeout)
复制代码 定时时间的计算公式: d6 ?" L$ N+ }$ _9 F5 D" |
& k- d" t' r$ u- |" f( {
- <p> /* Timeout = (Compare + 1) / LPTIM_Clock</p><p>
7 ]) y* c6 W- F! q - </p><p> Timeout = (Period + 1) / LPTIM_Clock</p>
复制代码
$ w0 H3 Y! F8 w4 L7 QLPTIM_Clock:低功耗定时器时钟:在CUBU软件中7 N, O: U3 g1 E. [% p
7 N$ `+ k) F1 L7 i
: x) }& G! f8 y' S具体使用到哪一个时钟,就选这个时钟作为计算 例如:16Mhz
8 g2 h6 ?8 G2 A& h* i定时1s: 1s=( Period+1)/16000000
7 U I- z, O- d2 r9 e2 f( h使用的中断函数为:
. w4 ^ i% V" P- Y* a' k- /**
, k5 G+ l- T7 G9 ?
w4 `4 m0 w6 L- *@brief Compare match callback in nonblocking mode
% m/ K& e# L! W: q s7 h# ^ - & B" L7 i S( `: c
- *@param hlptim : LPTIM handle
% O6 m# w( [; `8 A6 m
% w6 p* b! w& Z" A, H- *@retval None
5 R. H4 z; E' \6 p0 G0 W7 z
& t+ { h0 t2 ?4 x- */
' w/ u# Q4 W0 z( e5 B w2 H
" s9 F3 S, U1 ] }1 E- void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef*hlptim)
: ^9 l& b4 b2 ^; k& m. M7 O
& v$ g# z1 y6 }5 n; \9 {; {- {1 u j, E8 c+ _0 X. U" b6 }
- /*Timeout was reached, turn on LED2 */
' w2 _' ?0 f% R' P - ) s% u' ]1 _6 \+ O5 I1 d! f
- //这里写中断服务函数" N8 W& `$ p% g8 t) t7 m
- }
复制代码
$ ]! {- Q# N% U' v6 P/ D
; j( X! m% h' Y' c* B7 K/ U+ Z$ [3 p: G. |
|