错误代码段如下
/ ?3 w7 T. P* X) i& U; N: n$ Z! U8 @" T' A+ ]+ d
- FlagStatus HRTIM_GetFlagStatus(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_FLAG), j P0 _3 u5 F- Z
- {
, X9 O: f+ a6 I3 L' f7 ?; h - assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));7 s. [9 g6 f* ?8 G# g
- & F* Q! C) u1 Q4 |. `- B
- FlagStatus bitstatus = RESET;
( Y6 S% K5 m* a9 \( B
8 L$ T$ Q1 u& e, @+ w. S2 X2 g- switch(TimerIdx)
# G( L4 V" ^, y5 G' \% Y+ }( e - {. [, Y# L: K9 p7 W
- case HRTIM_TIMERINDEX_MASTER:
* P4 B2 Y% H( Z. n/ \) D" E - {$ d2 ~6 C+ y6 D( z
- if ((HRTIMx->HRTIM_MASTER.MISR & HRTIM_FLAG) != RESET)4 m9 n7 d* ^8 Q
- {
7 U! b% g' ]6 F- r. ]1 X& N7 L8 l - bitstatus = SET;8 B$ U2 b/ N) H5 R1 u) f: C# \
- }+ h# Y0 Q; a5 s5 A& m. ^3 v$ n* H
- else
9 {+ H/ k) i& K: l - {
& T1 @4 s$ Z* V - bitstatus = RESET;& F2 I6 l% d/ u7 d% D
- }! ^$ Z7 ]( y" X1 T6 ~2 j6 Y
- } t5 t, W0 D/ a; _; j9 _
- break;
, f, L# d5 N5 S! g( a
4 e! l( M G& _8 O, t- case HRTIM_TIMERINDEX_TIMER_A:
. x. X" l$ U: }+ S& w# J - case HRTIM_TIMERINDEX_TIMER_B:
3 W# [7 j) d) p" m1 T9 w - case HRTIM_TIMERINDEX_TIMER_C:4 D( j1 `% b" m6 F5 w% s, F7 C1 S( V
- case HRTIM_TIMERINDEX_TIMER_D:1 y2 i2 ^$ z. J$ A6 L6 ]
- case HRTIM_TIMERINDEX_TIMER_E:5 Q0 ~) H+ O/ y- u6 n
- {
) u7 ]% ~7 \2 r. f0 H - if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_FLAG) != RESET)
V: V7 {, ~4 { - {
. J! ?, f" X3 x6 j - bitstatus = SET;5 W2 }/ m0 g1 i& _8 V
- }: A9 B. t6 \, H- Y/ Q" ^
- else) r# P4 G9 E: o2 ?1 e4 D& p
- {+ t& ]7 C4 A0 r0 F8 M# O9 P/ @
- bitstatus = RESET;
/ |) {: R& v( D! v - }
4 y& d7 G Z" M - }
I# L$ g5 z3 [0 z J - break;) E ^/ o# L i. k) j4 D4 Y
# \; S: [" |& v) n7 I" F- default:: N+ E% I+ N! q( }
- break;
, b4 [, L; A0 i) Q V$ j1 t - } * P* A* R3 @6 S- y% W
- return bitstatus;! |$ @2 X/ @. H/ g* i( A
- }
复制代码
; [5 ?4 n& n0 l8 t编译报错如下
# w& H4 B/ C$ @! c$ s7 q4 p& s/ W4 w: F8 p
- ..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_hrtim.c(1139): error: #268: declaration may not appear after executable statement in block
复制代码 1 v U A3 t' b
修改方法:需要将 FlagStatus bitstatus = RESET; 这一段代码移动至 assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));之前。: U4 u; M: s5 {% {1 k
2 l! f# A, W6 E! \# |- i& g7 j即变量的定义要在语句之前。
( x# F0 S) A Z9 {" x
- P- a1 t0 |) M! F! O; b& f修改后的代码如下:
1 g! p- T" ?/ E+ }9 D
% F2 z! G( }" |- [: l8 r2 c- FlagStatus HRTIM_GetFlagStatus(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_FLAG), N! p1 s4 G6 Z) V% w' R8 F
- {
5 z8 f- M' l) z% @3 s - FlagStatus bitstatus = RESET;$ f; {4 A" l# q% R/ V% ]( g
- . e0 K' j, z8 ^+ Y" _$ s7 X; @
- assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));
3 B1 w- `4 { d5 U- f. F) ~# g
* S, S$ K# M. E8 u3 b! Y7 @- switch(TimerIdx)0 o# J2 L. r- B) W( s) j& w
- {$ l$ \& E$ F- @
- case HRTIM_TIMERINDEX_MASTER:
/ B6 W( [% W* B4 Y. i* n/ ~ - {
# D; E" J4 Y# s( y' E W5 H - if ((HRTIMx->HRTIM_MASTER.MISR & HRTIM_FLAG) != RESET)" n3 c8 _3 H4 E* g( ?9 E- `
- {5 j( J' }6 I* @2 z
- bitstatus = SET;- q. \7 t9 a( f" ~
- }! W( W5 O& U2 @. Q# P# E- D
- else9 o( `2 Q3 R- I
- {$ q' B2 b' K% U2 G. r" Z
- bitstatus = RESET;
% Z* O7 W9 z: f6 {$ {; H! K* M - }8 ], {% s) e2 l% r. q
- }
# i1 p6 A; k1 C3 ]& {, k - break;
0 H6 ^' }0 i; U8 i: J* z - 8 o! ]$ e" ]1 D \3 `0 _5 i2 k- |* O
- case HRTIM_TIMERINDEX_TIMER_A:
3 U% S5 M& |3 [ o+ w - case HRTIM_TIMERINDEX_TIMER_B:) {" h* d. Q: Y% J; C. s
- case HRTIM_TIMERINDEX_TIMER_C:
" t6 t, r" Y- ~9 P* N+ x# } - case HRTIM_TIMERINDEX_TIMER_D:. I& ?; P9 W! B5 w$ D
- case HRTIM_TIMERINDEX_TIMER_E:9 ~2 s' ]: {& w
- {& e9 e, ?0 H6 l3 ?
- if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_FLAG) != RESET)# t0 U: z- M/ `: B) E
- {
5 L, ]- a3 l; a$ w P - bitstatus = SET;
8 s- e4 B: l% j" f L3 V7 X2 v - }
+ V+ Z) Q5 N( p/ e - else$ K, _/ V/ C9 T
- {
: Y9 d* A2 Q* `& X - bitstatus = RESET;+ S6 s) w# d. h2 B. U! F& \
- }4 P, k; r+ C) X. E* m
- }# o+ w+ |1 `- a+ w" b
- break;& a( z4 X0 {" E4 C! \& ^
- 6 S* _" @8 |6 ]% h3 L
- default:3 j5 {- [( ~3 X3 H9 I: i- v7 [6 H
- break; U% m8 O( x! _; C6 I; S6 p
- }
" C3 H l2 B* @) | - return bitstatus;
) G- F* w; [, U. e3 ^# E - }; y) t( [: C* V: v0 B$ V
- 7 u, o* b2 G( t8 z
复制代码 6 ~# {7 M. c& W q5 Z
|