错误代码段如下7 f/ t# M* C& n
- H+ z( I6 [( T1 }9 g) }
- FlagStatus HRTIM_GetFlagStatus(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_FLAG)
, h: ]/ b5 K, a" j+ u5 H - {
7 k2 I) k, @9 [ - assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));+ M% d7 u( e( w; z, s0 ]- M8 F0 {
$ E9 P: A8 }% D' i- FlagStatus bitstatus = RESET;
6 n+ ^9 d+ i w9 y7 i% `
2 Q% m" Q/ m( S9 v5 Q/ l( O- switch(TimerIdx)9 {6 x; V4 |9 `- t
- {
$ _5 {4 m) z i2 J - case HRTIM_TIMERINDEX_MASTER:2 t) L7 _/ B( {$ i: x, L
- {6 r& t0 k3 {: F; m- d6 k" @) ?3 _
- if ((HRTIMx->HRTIM_MASTER.MISR & HRTIM_FLAG) != RESET)
/ Y1 g0 P+ a# }) C% [; J9 x+ P - {
8 x* k; d( p3 h$ h: N2 Q' E - bitstatus = SET;
9 n" T2 Y3 W3 V1 `4 u! h# E - }
" u% f& N5 E' G8 }+ M - else7 C) D. w: ~' s) `
- {; p2 w T2 Z. Y9 T- z
- bitstatus = RESET;8 M9 s. w# g, U% R1 j
- }
& d+ p! w, _3 q: m! v2 o; b( R - }, P B9 _+ b. T" ]* g, _1 [7 k
- break;
' n% X" v! q6 Q- R; N C. Z - 2 m8 C" w1 y& c5 I1 P: \
- case HRTIM_TIMERINDEX_TIMER_A:
, b% K, D/ R d3 F - case HRTIM_TIMERINDEX_TIMER_B:
2 R K; w- U4 B, T* k. x - case HRTIM_TIMERINDEX_TIMER_C:
4 z7 x) @# C5 L- j - case HRTIM_TIMERINDEX_TIMER_D:( l0 ^3 r5 ?3 r6 A+ C/ _ x. Z
- case HRTIM_TIMERINDEX_TIMER_E:
& ~! N. |- [; z3 i - {
B; u1 w) I% B$ } - if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_FLAG) != RESET)1 y/ Q3 q9 A- G+ q1 F$ h8 Z
- {
' A: q# Y) J9 N& W* s) \) V2 D - bitstatus = SET;" y5 o' |3 l/ A X' E
- }
: P! G. B7 p2 u$ ^( _# k& R - else* v2 B0 }( e) b5 r% l2 {. ~
- {5 v& x! v( U9 u# ~/ \* C! \ {
- bitstatus = RESET;, h) ?3 T: |1 H; e
- }
1 j: ]0 ]; l, _/ W2 K; ? - }* h" w8 S: B9 Z- e, u4 K, ~$ X( J
- break;
2 f" e. T/ O. j' j% n/ C! S - 0 G8 o9 N# ?) H, {6 D$ K7 [
- default:
8 J9 e" [9 L) u6 c/ F$ X - break; 2 h9 W* r6 E4 a* a4 J8 f
- } - \% Y6 W; `' }2 R: v1 s( A8 E
- return bitstatus;$ M a+ `. U5 S, F2 s% ^- M- u5 N" k
- }
复制代码 - _$ R0 X$ c7 f0 k
编译报错如下- P& d; }& J" p2 a8 s
S7 p2 K- b8 {; [% i: Q; S- N- ..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_hrtim.c(1139): error: #268: declaration may not appear after executable statement in block
复制代码 9 P7 _ L# _2 q
修改方法:需要将 FlagStatus bitstatus = RESET; 这一段代码移动至 assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));之前。
( G$ V4 M e3 B/ s) E' O6 W1 D/ ~' P6 |+ F- B7 i/ E
即变量的定义要在语句之前。0 s7 }+ j9 y6 K- ^5 J. @
G: x9 x' | k, `; Z7 Y修改后的代码如下:
8 L% V' y9 i! }3 ?! Z. A* N+ Z. ^$ V5 ~
- FlagStatus HRTIM_GetFlagStatus(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_FLAG)
a- a- I: G; t; W) M. l( T - {
! U7 S; q8 a+ p. {# a, A; }, l - FlagStatus bitstatus = RESET;
3 d' ^" b4 _$ l& G1 [! L -
2 M* q0 ]# p3 s8 ~4 e4 @- G - assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));
. f8 u/ b$ G# M5 Y) ~! l# v' X
0 \. I: H& L# z& B( O- switch(TimerIdx)( {7 Q( K' v; ~3 Z" Y& P
- {
% }+ ^4 \8 g% u l$ W- } - case HRTIM_TIMERINDEX_MASTER:
5 q9 \- g5 d/ @6 d# N0 b - {
3 G, I |, ~/ E7 p* F- _% q - if ((HRTIMx->HRTIM_MASTER.MISR & HRTIM_FLAG) != RESET)1 m" V" T2 g- e, m' I4 A ?: T
- {
) W, W- M# Y: _ - bitstatus = SET;2 }1 t" l$ I$ h; r8 h
- }
5 m* S9 H# S% \. k2 @. L - else2 \( h' A( a; `" u" p9 v% _4 O# K
- {
1 L' X/ o2 R" ]9 U - bitstatus = RESET;% l: J+ x% O Y. e) k# R2 N
- }
' c1 E3 `" h+ L- I - }
2 A* a; u' G- O/ o4 _ - break;, k( {$ ^7 Q/ T5 l4 C0 `. d
( l# ?3 h |1 ]5 Q! ?+ v% J- K. l- case HRTIM_TIMERINDEX_TIMER_A:; \- E1 a, X- D, D" |( U% o! B
- case HRTIM_TIMERINDEX_TIMER_B:8 K2 c) f+ b9 p$ t8 n" i
- case HRTIM_TIMERINDEX_TIMER_C:
) c' T& R- M) O& O3 O8 Z& L1 K - case HRTIM_TIMERINDEX_TIMER_D:
$ D- s. U) ~% U& { - case HRTIM_TIMERINDEX_TIMER_E:
" F# E& {: K% t - {
5 }* O \+ \! o - if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_FLAG) != RESET). x; r6 M4 Z) V0 q- q* C3 a
- {
5 D8 s; g8 Q5 l, h, s3 c$ J* R# L2 n0 _ - bitstatus = SET;
2 C/ E( d- A! E& ]7 R3 N/ b' P l$ g - }- h; ]8 f0 x3 I1 b- v0 r! P& X
- else# b7 W3 M- q5 J& p( _2 ?
- {
1 g6 _% N# t$ r+ \; b" x* R7 Y - bitstatus = RESET;
# J: ^8 H0 o% t( \0 ]2 J - }0 y. o# P2 K% A# b$ P
- }! l/ h2 N5 g8 {7 z, |* g
- break;7 G/ H2 Z8 v/ `2 F5 j
- 1 `2 @5 i5 G3 P: P8 ^
- default:0 F+ [4 P8 ]3 l. S
- break; * [/ i! {2 G" ]5 w; T5 `
- } ; H+ m2 c2 ~1 F; P
- return bitstatus;
7 U/ Z% C) x- @8 E, [; u" W/ ?2 Z - }' H3 G$ D& k! r5 S* P. j& B
- J' K" s9 a# V: X+ ~: P# }1 W5 Y4 C
复制代码 ( m$ R; ?3 } I( t' e: A+ o
|