错误代码段如下1 U4 ?$ v! B( z! ~
$ s: @1 {: v: D- FlagStatus HRTIM_GetFlagStatus(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_FLAG)- x0 x/ O2 U& W0 n" g4 B- r
- {
2 Q5 f/ B4 A9 c7 Q4 _' a0 u - assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));1 c" O0 m4 z1 ~7 m3 N( D
, |* y: g' p, f8 {0 i, |# ?( @- FlagStatus bitstatus = RESET;
?7 R/ H, |8 \3 }1 P* S! D - $ v o1 y* A/ J0 r+ U
- switch(TimerIdx)
- n% l. |- U" d9 |9 \# c+ S% f - {
% |$ L& B+ ~5 }8 T8 Z - case HRTIM_TIMERINDEX_MASTER:
7 ~$ g/ J, c4 o& j+ F- ] - {
7 l! T$ B- q$ Z; _ ] - if ((HRTIMx->HRTIM_MASTER.MISR & HRTIM_FLAG) != RESET)
, f) m6 `4 ^) S- `4 C" \$ C z3 ` O - {
/ E) I4 C+ y! \5 ^& a5 ^7 q - bitstatus = SET;+ n" ^2 v2 B+ \# j A
- }
$ v2 F( L6 h- l: B/ v - else
9 `5 P" _) F0 V2 t. w! r2 \* c6 f, |. y/ \ - {9 T& `& S( o0 \
- bitstatus = RESET;9 z$ c) \) P7 R' i* t
- }
3 H2 v+ m( ?9 M0 g - }' M8 s4 E4 P- |9 r$ z
- break;
; h( x2 w0 v2 ?' u% I# P0 g( {
7 U% s5 Q( E. x) j7 t8 D0 o- case HRTIM_TIMERINDEX_TIMER_A:& p+ [: N" _( G O
- case HRTIM_TIMERINDEX_TIMER_B:
, B1 x/ C( I; T) v9 d# M - case HRTIM_TIMERINDEX_TIMER_C:
3 [$ A% b/ _. P; @8 \ - case HRTIM_TIMERINDEX_TIMER_D:$ g0 Y6 D' K0 T& }) I. X$ d- C
- case HRTIM_TIMERINDEX_TIMER_E: P" x2 D9 S2 S1 I* ~$ A
- {, }- D9 k$ _+ E) c6 b1 @& a
- if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_FLAG) != RESET)
+ j( g% q* R$ j4 M - {
) V3 t* v0 G# b) [8 a - bitstatus = SET;5 d7 ^ b+ |, L3 }/ [5 m, ]
- }
& f7 H. _# J v+ @7 g! G9 c - else( T0 m5 |2 T# Y. P
- {
4 p! e+ r: O) b% w0 b& `$ X - bitstatus = RESET;* N& h( @- j& q
- }8 x8 t6 a# F% V. ^+ S! z) K
- }- w) |3 k, M. n) j/ }6 e. G
- break;3 z9 }, C7 J, V/ n3 w7 O
, ~- T: }0 W" b2 _' f5 e; H- default:
% ~; x& \2 d2 x3 s - break;
2 a! e+ ?; H# ? - }
; O+ E& ?$ D0 T% \ G - return bitstatus;1 M! X- ?: J+ ]3 H
- }
复制代码 2 Y: Q2 r C) \
编译报错如下
) T/ G9 w' ^) O: o: A, Q1 \9 r1 ]) v% g/ x4 ]
- ..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_hrtim.c(1139): error: #268: declaration may not appear after executable statement in block
复制代码
& I, o1 _: h' [+ b( j修改方法:需要将 FlagStatus bitstatus = RESET; 这一段代码移动至 assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));之前。
0 s) t" m6 [, q- f6 R) ?" X
: D) Z* }; C3 O9 b即变量的定义要在语句之前。5 i$ ]7 e/ a0 J5 x
/ [- V X4 A0 |
修改后的代码如下:" b& R7 D' i( ?. d) \
# ?1 [, Q) d1 k- FlagStatus HRTIM_GetFlagStatus(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_FLAG)% L+ M$ y# |( l& s) f2 e( {# C
- {
' B# C8 ?9 |5 ]% @- r, t# t( T - FlagStatus bitstatus = RESET;
& G! g" h$ D# z; K% E" x -
0 G6 P; K% X4 D/ h& i0 {4 ] - assert_param(IS_HRTIM_TIMERINDEX(TimerIdx)); ) _. T' Q& A. x8 ~) ]: T" [8 i
- . @0 H7 Q' U+ O
- switch(TimerIdx)
- R. Q1 B4 P. k7 G/ l9 | - {
* N* [) {% k" ]4 Q; P4 Y, F+ f9 l - case HRTIM_TIMERINDEX_MASTER:2 Z7 N- A. p1 E2 z
- {
# w/ r6 G, E4 E, Y# P - if ((HRTIMx->HRTIM_MASTER.MISR & HRTIM_FLAG) != RESET)5 R: X. P8 c* [2 P
- {
5 e0 Z+ F: i: Z0 u% Z3 ^ - bitstatus = SET;$ |0 k# f, h3 N9 k
- }- w+ C. A8 N8 Z) l8 ^" R. B. s
- else
2 X+ P$ k7 W9 c8 {6 E+ _: h - {
& a1 R6 u! a2 q& X I - bitstatus = RESET;
6 q* {- {& }& n - }
5 S! s* c: ~5 F8 s) K; {# X: ~ - }: R) f. P8 [/ s: _# L
- break;& a3 s* F1 q( }1 b
- ! r0 P$ w, [: k# A0 P
- case HRTIM_TIMERINDEX_TIMER_A:1 e" @4 L2 E0 I# m
- case HRTIM_TIMERINDEX_TIMER_B:
+ V4 D% n7 C! ~ j7 S - case HRTIM_TIMERINDEX_TIMER_C:
9 Y3 U$ y6 Q4 |" e4 ?% A. O - case HRTIM_TIMERINDEX_TIMER_D:
0 H* W. l( B1 I7 v - case HRTIM_TIMERINDEX_TIMER_E:
8 k; a# h; y* P. N2 l+ q. z - {
2 ^6 M% b9 p& T5 g; L - if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_FLAG) != RESET)
5 L. \& v+ U/ |: G0 L - {
6 Z5 q5 i% o. Z, k+ s - bitstatus = SET;
- Z$ k$ b* Y+ o* E - }
S+ p2 l0 R+ B - else7 l6 z+ s% P. z/ w
- {
4 p/ v0 l j0 Z% M5 R. X1 r/ S* q - bitstatus = RESET;
% o& ~7 X+ ?* o: C; V - }- J, @& k3 Z7 V7 d3 R
- } w6 Y# G, u3 Q+ |7 h3 u# j5 B$ ^, J( N+ Y
- break;
! |: l3 `3 q; ~ x# M3 @6 B
, g4 w+ w7 y! a# k: N- w3 I, m- default:4 M+ X' ~1 m# y$ m5 q* V& o
- break; : \# d- _6 i$ f) {% X, n$ H2 A9 [( R
- } 7 h8 C) s. w& |# G8 R
- return bitstatus;
$ z( C6 \8 L% @$ ]% r - }
. ?) ?4 t" N4 t8 ~* L t- w3 c - 6 h# Z5 h) g l- L# b
复制代码 / a( R# v. a. g: Z0 P8 B, b
|