|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
void USART0_IRQHandler(void)
9 y( b9 C! {. x$ k{* t, T1 M6 l3 a- H3 U' U: Z: d1 R. m
if(usart_interrupt_flag_get(USART0,USART_INT_FLAG_RBNE) != RESET) : r( I6 L; D1 C" d* I, H. {
{6 E9 u) \3 O6 b k
USART0_ReceiveFifo[USART0_ReceiveFifoEp_ZC] = usart_data_receive(USART0);$ }- C, Q: d5 n; ?4 N* F; r
USART0_ReceiveFifoEp_ZC++;, ^& r6 i1 K1 B
USART0_ReceiveFifoEp_SL++;
! g F9 Z8 P' w+ X$ O- ?3 l, [ if(USART0_ReceiveFifoEp_ZC == USART0_ReceiveFifoSp_ZC)
( Z! Q" N0 W' N" _ {
) j! e3 F S. @4 n! p. R8 R USART0_ReceiveFifoSp_ZC++;
+ Z2 b/ T7 X5 M }
/ K) d6 t0 Z* B if(USART0_ReceiveFifoEp_SL == USART0_ReceiveFifoSp_SL)
2 c/ A! ]& j7 t# M5 p {
0 r, `9 J. C( j o USART0_ReceiveFifoSp_SL++;( M# ^7 b, m( [' H* {6 ~% x ?
}
. `- c! n1 B9 B$ C! x USART0_ReceiveFifotime_ZC = 0;
" w6 }; k/ g3 X9 f1 M3 B USART0_ReceiveFifoTime_SL = 0;
; x9 t) Z T6 z( d& k/ u; a }
$ X+ |7 c" C% U8 h4 p if(usart_interrupt_flag_get(USART0,USART_INT_FLAG_TBE) != RESET)
( s4 U! W, s7 x5 X) g# t {7 H2 R7 c+ h: U& P) E: I+ s# I
if(USART0_SendFifoSp != USART0_SendFifoEp)/ \2 C$ c% R& _% H
{$ x+ p M$ ~5 T
usart_data_transmit(USART0, USART0_SendFifo[USART0_SendFifoSp++]);
5 S' d6 ]$ a9 `+ Y( b! ?( z }
, D6 o3 W4 ?" h0 G. j6 U if(USART0_SendFifoSp == USART0_SendFifoEp)
) Q. ]9 S+ x7 a* c {* D5 Q5 f! X+ C- i5 M$ D
usart_interrupt_disable(USART0,USART_INT_TBE);8 a* I1 `+ W# s9 J3 X' X$ H& f
}: a/ w& }: O) l/ _3 K
}% _: a/ R5 }8 R2 X. O, T% B" }
} " n$ b- W# k# g0 d% V3 W/ w* Z+ O! \
! B1 P! G3 H+ u4 t2 c
uint8_t USART0_ReadFifo_ZC(uint8_t *Buff)
$ t& b4 Z* Y4 @2 O- k{
* m( B* V% G3 V' V. c% U uint8_t Sp;
: @6 Z: B( E& K5 X4 y uint8_t Ep;
8 ]% `2 A( z# n) F" p9 h& N uint8_t Len = 0;
, L; T0 B- u" k7 J
$ M! b( `% F+ s Sp = USART0_ReceiveFifoSp_ZC;
9 M& N8 c$ r- V; g4 g Ep = USART0_ReceiveFifoEp_ZC;
, i& z. r1 _( ?5 ]6 u; R2 a while(Sp != Ep). A6 x0 f6 Y) {' h2 b
{$ q& T& v3 j6 N$ e
*Buff = USART0_ReceiveFifo[Sp++];
2 d3 K; S5 {. j Buff++;
, F! K$ x9 ]& A+ I Len++;" L+ C* f. e. B8 T( w
}& [! n+ [# q) j! A" C$ ^
return(Len);; A* O* a1 x7 E0 ^5 O9 L
}
: P% A* f" {8 Z! E: h! O/******************************************************************************
1 E5 h) S+ C+ k. R% S. p d*******************************************************************************/
% t$ _0 p& \# d2 [0 pvoid USART0_DeleteFifo_ZC(uint8_t Len)6 i q2 k! i- j, }
{7 g, Q( S( x6 L: S! i3 K# B* X% W7 j
if(Len)* @, \9 u: Q4 g5 P
{: w$ l* \' x6 }2 Z* C
USART0_ReceiveFifoSp_ZC += Len;
( f% d4 y! Y7 s4 E8 ]5 G }) P+ H+ O5 r1 s& }8 c, x/ I: g/ t
else6 N0 ]3 D. p6 [* Z1 k
{" s& M; }) [7 p
USART0_ReceiveFifoSp_ZC = USART0_ReceiveFifoEp_ZC;
+ d1 L; V" E; U7 C2 ` ^& \9 J }6 a2 B. c, H" K
}* T" n7 g3 _4 e2 l8 L# \& A$ l
|
|