错误代码段如下9 m# O1 C- i+ i- H4 x
1 z6 ]; r! ]- N8 b& ]+ d( _ h. K* Q- FlagStatus HRTIM_GetFlagStatus(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_FLAG)
2 T( }8 l3 ?% o" S - {
- }/ F3 A Q" [4 s8 O+ ~* X$ I9 w - assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));
2 v- m* u. {2 X5 L' Z8 S' c& V9 k - 7 J) {4 W. e9 g6 t: j. v
- FlagStatus bitstatus = RESET; 7 @- J G0 L; [9 Y1 p9 R! S, `
- 4 D- n: |7 b z- l
- switch(TimerIdx)
$ V9 l$ Q- l2 t - {
8 [0 P1 L" y- R: [ - case HRTIM_TIMERINDEX_MASTER:
: \! L5 H3 z( g+ `; c# Y - {, f& E" X* u O h$ {9 u- _
- if ((HRTIMx->HRTIM_MASTER.MISR & HRTIM_FLAG) != RESET)
( x/ F2 s$ K) T - {
/ k! ?* T Q+ v3 x( W - bitstatus = SET;
1 u; M6 {) X6 t/ \$ V - }! F/ @& g) q( p h4 V
- else2 z0 d! ~% K" P8 f5 D, S; V! L
- {
$ z1 G B6 f1 o' v- N8 o - bitstatus = RESET;7 @+ e- G( t* B8 _
- }
2 k9 r. B0 W9 {5 e2 z. f% a. q - } W7 s1 ]6 ^ S- k
- break;, M) M% B- b" }
D2 ]0 j' C& N# S+ F$ E- case HRTIM_TIMERINDEX_TIMER_A:
' U! g6 Z8 e0 N% e( B% X0 L - case HRTIM_TIMERINDEX_TIMER_B:
. Z& g/ v( w0 M$ a4 A - case HRTIM_TIMERINDEX_TIMER_C:
& w0 P+ _7 e. @( m - case HRTIM_TIMERINDEX_TIMER_D:8 H# _8 d8 @2 L% x* ^7 N3 K% e I
- case HRTIM_TIMERINDEX_TIMER_E: t4 a& e! x) O& e4 T6 J: W
- {. {8 R& t8 O) _2 g; `: \5 A/ W
- if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_FLAG) != RESET)
0 d5 ]; ?# j8 U8 X2 s( N: m. G# U: j - {' }2 J/ B+ q2 P8 N4 R
- bitstatus = SET;4 f- K+ y, Y b3 m7 t
- }
+ v7 u% b- i. ^, D5 r @$ X - else
7 s( X, M* S6 N* l/ E. ]& L( F - {6 o! j; S d3 R( n3 d( U( B$ x, H
- bitstatus = RESET;
0 E9 W6 `; m& i0 i A2 {/ F - }9 I/ q: l4 @ P V. \9 k
- }& r( K/ C1 R5 h0 e
- break;3 k/ E3 V3 O) H
- " o* m3 n/ l! a" b L4 h
- default:
0 W* i- h) M3 w$ O3 f - break; 4 N7 Y; U: r' Y+ i2 M
- } 2 b. a1 B' ?/ _; l/ z
- return bitstatus;0 S3 L% ^6 S* h* N% }8 Q* F
- }
复制代码
" a4 _! g, r: M! ?. h编译报错如下4 O8 J/ _/ O3 y- S, E
2 [: @5 n3 H$ \& w, n, A- ..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_hrtim.c(1139): error: #268: declaration may not appear after executable statement in block
复制代码
' _3 q% R" N R: \0 |修改方法:需要将 FlagStatus bitstatus = RESET; 这一段代码移动至 assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));之前。
J4 w7 F: \5 d
& v4 I8 M1 [& _ ^2 [+ H" g# r6 X即变量的定义要在语句之前。
. |% L1 m1 L; \4 L; ] p4 Y5 e9 A z9 i a2 d' }: H* |4 m
修改后的代码如下:+ p. x. X- G, @% W2 E: V1 ~
) D! A0 d; x9 C* ^/ H
- FlagStatus HRTIM_GetFlagStatus(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_FLAG)
& H6 e& D) v+ }) k - {* \3 V! ]9 E. a6 J; F" q5 t# J& X
- FlagStatus bitstatus = RESET;$ b) }( l/ v3 q8 \( B% }: i
-
3 q! k# X* K, @6 ` - assert_param(IS_HRTIM_TIMERINDEX(TimerIdx)); : `5 G% |- \% H4 R' p' {' D
- * n- L, h7 g0 y5 X* h6 @
- switch(TimerIdx)
8 {2 w; O4 ~5 m+ M - {: d2 C; V, U5 v
- case HRTIM_TIMERINDEX_MASTER:
, d$ [ t9 B7 X" [ - {
5 s) r! A: x3 E: f% F, N( I5 h - if ((HRTIMx->HRTIM_MASTER.MISR & HRTIM_FLAG) != RESET)
3 P! V) _* {4 U# ?% Y) l1 g - { q+ b! [ H2 \
- bitstatus = SET;; Q# T- c% G. S+ F9 t) s
- }$ e( Z' \ K5 ?8 @+ x- k& O3 ^4 J
- else
, ^6 t; z+ w3 B; c9 u0 T - {8 c) k! B' D9 I! r# \
- bitstatus = RESET;
! o% Z8 @) U% m U$ S# f' m - }# d1 P5 L! _0 F6 S$ d# D
- }
. _8 B# z& Q N! v5 y - break;
5 G S5 U: b5 s$ N; h# R1 m+ M
# L& |, d& U9 K* X# b- case HRTIM_TIMERINDEX_TIMER_A:: F, E6 U" i; ]' e* S+ _% [
- case HRTIM_TIMERINDEX_TIMER_B:
% |. Q" `- N0 ^* N7 Q+ E q! G - case HRTIM_TIMERINDEX_TIMER_C:
" k5 Z9 a3 m* a* X; [' E( s( V% Z0 K - case HRTIM_TIMERINDEX_TIMER_D:) k0 |2 C$ ?, x
- case HRTIM_TIMERINDEX_TIMER_E:! Z H+ s8 X8 o- m9 S% m" J- W
- {
+ @- G$ C5 @+ g+ q \ - if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_FLAG) != RESET)
0 ~+ B/ m0 a( d' @+ ?' A. c - {
& W' U% l: y# o; J( G - bitstatus = SET;0 F6 m5 ~, f6 ?' R
- }+ I4 `' D# H! C+ s3 s# P; X
- else
* t7 O8 f2 w$ ~$ P - {( Y) f2 B& g4 i
- bitstatus = RESET;& n7 K, y+ j& U; q4 j( q5 p
- }
9 e3 n4 k4 z9 u$ e - }, _/ j: p( _6 ^# s. a. p4 j
- break;
5 q9 T& ^4 v) ^- \
$ w( j7 }2 D7 q C7 K- default:
T v; e1 A( ?6 t M1 x$ B - break;
2 ^% U- E5 z" D7 ~1 J) v# D - } ) D. A k' {$ G9 [# f4 y2 `
- return bitstatus;
9 Q0 t4 f, [# D; Y% y ] - }# D7 K* ?/ [& u
& R7 M1 C! ?- A" n# V3 P
复制代码
, _/ x) C6 a& E, @7 y3 H3 v |