|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
void USART0_IRQHandler(void)
! p5 U5 X: J8 K% G3 w% C3 D{
Z# e# C: O9 Q/ G) S. [! l3 P" ] if(usart_interrupt_flag_get(USART0,USART_INT_FLAG_RBNE) != RESET) S( P( N- D9 W
{
; Z" J: g t; `$ ?% y USART0_ReceiveFifo[USART0_ReceiveFifoEp_ZC] = usart_data_receive(USART0);
8 }* l* K' F5 U* R- x: r USART0_ReceiveFifoEp_ZC++;
7 } f9 b- t7 l; b2 o USART0_ReceiveFifoEp_SL++;
6 p1 v4 F0 e \+ Q; U- i3 U if(USART0_ReceiveFifoEp_ZC == USART0_ReceiveFifoSp_ZC)
& r* ]7 U# U/ f3 j9 Y. o {
/ F% H3 ^! w" ^) F+ d USART0_ReceiveFifoSp_ZC++;7 `1 |. x3 i+ k. T7 b: H
}9 A: |! z0 h1 v1 W x
if(USART0_ReceiveFifoEp_SL == USART0_ReceiveFifoSp_SL)
$ C2 x. Q" J, y, K. {5 q {+ T* ?( n1 g/ p/ G* i
USART0_ReceiveFifoSp_SL++;6 ~) N7 L, o w2 \3 J9 R) `
}
5 V% _: K" i- O" }3 M" o USART0_ReceiveFifotime_ZC = 0; " E+ P6 C# @4 j$ k: S
USART0_ReceiveFifoTime_SL = 0;
* l t% O0 l2 {" m) ~2 U( \ }
6 J8 v" ]% n8 p- _9 |0 j- b if(usart_interrupt_flag_get(USART0,USART_INT_FLAG_TBE) != RESET)
9 t* N# W4 d: y; i8 C2 l {* k& l+ U& c$ @2 Z
if(USART0_SendFifoSp != USART0_SendFifoEp)
9 Q; m% }; I* J. g( O9 L {
, X% {- h5 Z3 s/ A usart_data_transmit(USART0, USART0_SendFifo[USART0_SendFifoSp++]);
6 ?# t9 v/ r" R$ P }
- T4 w; U; ?3 T1 D if(USART0_SendFifoSp == USART0_SendFifoEp)+ M# g9 ]$ [8 U7 y3 [4 F
{
' S% z7 k# b1 a usart_interrupt_disable(USART0,USART_INT_TBE);& j$ F# U, ?4 Y+ g; v; Z$ {& Y
}! k: J+ u0 r. O% s
}. E2 t. j& s% M! y
} ' n0 X L3 v* V# J- x2 p0 C, e: m) A: `
7 u2 T$ y3 P* q- e* ~7 x+ e3 d
uint8_t USART0_ReadFifo_ZC(uint8_t *Buff)
' x9 ~1 e* O7 y0 n4 y{
# x# E# H6 N {5 ^# S uint8_t Sp;$ \+ e4 b* J j$ B" g
uint8_t Ep;
; q) R3 H) K4 x. V" n uint8_t Len = 0;
/ y$ \7 U- m- ~+ k) z1 N+ w . j3 w4 C3 s, B/ s! w
Sp = USART0_ReceiveFifoSp_ZC; A) `* J# z1 p5 ^: {. g1 l
Ep = USART0_ReceiveFifoEp_ZC;) a i0 U; B! _' a, l
while(Sp != Ep)9 g! R0 h0 K* Q) y
{
- r E" K9 P' |6 g; M *Buff = USART0_ReceiveFifo[Sp++];* {4 Q/ ?% o J) s% I8 r1 Z0 _
Buff++;9 _* n' _$ ~8 q$ I8 q) t
Len++;
) N2 ?1 K# _0 P+ y }
" F" a8 e3 c7 I& a2 A return(Len);
. W- P4 X! M- S- P' A( ?% F}
) D+ n- x- c, a7 [0 j, G7 y. u& q/******************************************************************************
& V' F8 v& ?( T6 C1 _% ~' N* u3 ]*******************************************************************************/
2 j) k0 O$ ]! u ?void USART0_DeleteFifo_ZC(uint8_t Len)
" F$ P2 \, I. q" X% M/ C; l" {; Q{
; K7 |, ^1 Z2 C, K& O) E6 Q if(Len)
0 q& }) j- O7 S# | {
! H+ r! r! r0 C5 b& g USART0_ReceiveFifoSp_ZC += Len;& y/ E! V4 O. }( l: T
}+ ~- T; C- @1 P8 a' Y, }; _
else" H4 I; V% h: l% g- e, {
{
" u- b! A" y. I0 K* {9 G) ?% E USART0_ReceiveFifoSp_ZC = USART0_ReceiveFifoEp_ZC;1 D7 C/ |. U6 S6 k
}1 c2 _# i Y) T! p# K- A* H# W
}% W/ d9 e) k& q
|
|