错误代码段如下
0 H k4 r+ r" V$ o, h4 t: N3 x# ~/ p( f& w( E2 B. X
- FlagStatus HRTIM_GetFlagStatus(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_FLAG)
: x* e* }1 r: h3 \5 A - {# c& @3 T {# }0 o5 b/ q
- assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));/ `) g$ U& j. y
- " ?5 g9 |: \4 Y
- FlagStatus bitstatus = RESET; $ I) F' K, I0 L ~
- 7 s8 M2 F& g% F( c4 [& D
- switch(TimerIdx)$ N0 g7 j' h$ s$ y0 n
- {
1 q' y( }6 h; b - case HRTIM_TIMERINDEX_MASTER:
+ q. x8 v4 Y4 N2 \ - {, k; G; h1 M0 p" c
- if ((HRTIMx->HRTIM_MASTER.MISR & HRTIM_FLAG) != RESET)+ D& u+ ]+ H& |* x7 d0 M
- {/ X6 e9 B2 [- s2 y# p: f& d
- bitstatus = SET;
3 |$ O4 g( K& R9 L% I - }1 Y7 n' }+ G1 s# E9 D7 q* R! T7 n
- else
) F! m% K! D7 w - {& n7 P& g+ ?& R* @$ x4 A
- bitstatus = RESET; O3 Y, \! x# X1 U; \
- }
+ V( u7 o4 X: S& c8 o - }# y x2 M3 u% [3 c
- break;3 r5 W; `5 j. F
- # }; F. s/ C) z7 m6 ?- x
- case HRTIM_TIMERINDEX_TIMER_A: ?5 P( d+ u3 i; W& z+ p! q3 \
- case HRTIM_TIMERINDEX_TIMER_B:
- R# {8 I7 L# _/ ]& Z - case HRTIM_TIMERINDEX_TIMER_C:1 p# j. \; v/ J+ X3 g
- case HRTIM_TIMERINDEX_TIMER_D:5 p% l$ _, F2 y3 j, O! Y
- case HRTIM_TIMERINDEX_TIMER_E:: c' G1 ]- E$ f! m+ \
- {
. u" S7 M9 ]' x: g# s/ ]/ o$ a. | - if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_FLAG) != RESET)- x4 A) l7 |9 L7 w
- {7 T4 W/ M7 N6 A8 Q; v0 t" b0 H2 Z1 [
- bitstatus = SET;6 A: K0 o2 F, j) u
- }5 g7 q4 k. U: m- d J4 a% V' L
- else
- O% ?1 Z. V6 L# g( { - {5 k6 f2 F) @* Y/ s' ^" l" b$ D9 {
- bitstatus = RESET;
9 ]- {, Q- S2 I' X - }
" ]4 |* g [) d% Z3 e! L# V - }# k" u& P/ B8 \1 o2 N/ `4 |
- break;7 J6 S* X6 @2 S( w5 L/ G
( H# l& Q6 ^ z$ t& E- default:( E/ f" N4 X, W5 K- E. ]
- break;
; s8 O- S1 {. L7 C( |. g5 U - }
6 z, `. y- t7 x; S, p m0 _ - return bitstatus;
7 o- _& G3 ]& o - }
复制代码
* Q! X& @& p0 j3 l! C$ j3 @编译报错如下' Q3 s* N% b9 N8 b
6 S, I+ w5 [7 R8 D& F
- ..\Libraries\STM32F30x_StdPeriph_Driver\src\stm32f30x_hrtim.c(1139): error: #268: declaration may not appear after executable statement in block
复制代码
8 L- v O$ X: f; S6 P/ [3 D修改方法:需要将 FlagStatus bitstatus = RESET; 这一段代码移动至 assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));之前。8 n9 e% I) e# V4 i# ?, i
" N4 p! W# C! I6 V即变量的定义要在语句之前。1 |4 [8 ]! _! L8 U) \ R
! V/ A" l( X$ A- R+ ?6 h
修改后的代码如下:- u- E& g7 y+ W8 k
: T( o+ n5 ^8 E6 }5 I& i
- FlagStatus HRTIM_GetFlagStatus(HRTIM_TypeDef * HRTIMx, uint32_t TimerIdx, uint32_t HRTIM_FLAG)& m- e* i, `$ Z" K/ U2 H) q
- {- x# ^; H% J4 c. W1 J; L
- FlagStatus bitstatus = RESET;! t1 D) k# s4 e, ?
-
4 F y2 L8 G. J - assert_param(IS_HRTIM_TIMERINDEX(TimerIdx));
1 o8 b7 e' O- T
7 x$ N4 u K) I- switch(TimerIdx): G2 w/ @% [0 C9 [# W3 E9 _' j
- {
7 z4 y8 T& t, K! U2 b8 l9 R - case HRTIM_TIMERINDEX_MASTER:
) }* Z3 ^ i& b) \4 M+ j - {
9 J5 i4 m) S1 c, V$ i - if ((HRTIMx->HRTIM_MASTER.MISR & HRTIM_FLAG) != RESET)
% p# O: u6 l [* J3 w2 E9 U# x - {" B* G1 L/ R; n* K
- bitstatus = SET;( k6 g& [0 W* t
- }0 F# ]) i2 k# N1 L5 v% i
- else
& h2 q A+ m$ e% D2 Y1 E1 p - {
d; A3 D' T2 K - bitstatus = RESET;
! F! u( B, K- K( e L - }) J+ d, c& O$ G0 c+ e; q
- }
6 F% [+ Y9 m1 m$ w1 t. u% S3 F - break;
3 |- v* ~4 A/ z1 R' Q, o" w$ S
+ ?% n* m- y* ^4 H3 e- k- case HRTIM_TIMERINDEX_TIMER_A:
! d4 N& l- L2 g9 b* w - case HRTIM_TIMERINDEX_TIMER_B:
5 x' L( ]# ]* ^1 N6 \ - case HRTIM_TIMERINDEX_TIMER_C:
) r8 f% {5 T: h( {4 g) m( V - case HRTIM_TIMERINDEX_TIMER_D:
- z2 p0 m/ I( `8 i. s. j( ^0 t0 M Y - case HRTIM_TIMERINDEX_TIMER_E:7 G: B( J. L: a2 x
- {( H$ ]1 e/ X" h: u$ {. D
- if ((HRTIMx->HRTIM_TIMERx[TimerIdx].TIMxISR & HRTIM_FLAG) != RESET)
0 o7 u/ F5 k, p1 l- O& c8 g6 \ - {1 p5 \+ J. n1 o& b; i9 w, d4 ~2 W
- bitstatus = SET;
7 d3 t! l9 r# M7 G/ I2 F! k - }
# i$ ]6 p3 B: W2 V7 f - else
# q4 x0 N- c( E" O6 I5 G. L9 x - {/ j6 @! d) o- q- H1 @
- bitstatus = RESET;
. G9 l+ V$ h/ f6 N7 d4 t" D0 u" R - }- y' F2 k6 Y; D& t
- }
7 L4 p. P* [# @, x2 G. V5 c - break;, m% x$ b, C% s& t2 u) `5 B7 d, ?
- h! f7 c3 M7 f$ z- default:/ U9 A$ B7 I, z+ J- h% q% C
- break; " D3 ]1 J$ q5 \" ?8 b5 C/ g
- }
# O) q' C2 l6 k - return bitstatus;! m( o* x3 T a! m2 U3 {) |. i
- }
/ M! H7 M y* p( i3 N5 n - 1 U8 h$ \+ g" w5 k4 D7 i
复制代码 1 a5 a* D3 o$ z
|