|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
void USART0_IRQHandler(void)# C& l3 C" ^0 `5 U- I- n# `' Z
{
. k' \- A( m) J/ E" h if(usart_interrupt_flag_get(USART0,USART_INT_FLAG_RBNE) != RESET) # t; u M3 Z: v, P& e
{
; B8 Q Q2 Q9 v; F& l. }& T: ], B USART0_ReceiveFifo[USART0_ReceiveFifoEp_ZC] = usart_data_receive(USART0);: p& L" m' Q' X; D k0 Q
USART0_ReceiveFifoEp_ZC++;
8 M0 V. W, K9 a4 J$ G, c. G USART0_ReceiveFifoEp_SL++;
& y A" E/ N& E; j3 {8 d( v if(USART0_ReceiveFifoEp_ZC == USART0_ReceiveFifoSp_ZC)
% X1 e* e/ h/ Q/ M {: }3 t( ?: |# g. s# A' l+ m
USART0_ReceiveFifoSp_ZC++;
6 `; ]7 k! F+ t' D. s: j }' m" {5 A2 a* I1 j/ T- \, G! u
if(USART0_ReceiveFifoEp_SL == USART0_ReceiveFifoSp_SL)
7 F" b3 P4 q* l# l) _ {
0 Y/ w ~, w8 Y' h+ f* X USART0_ReceiveFifoSp_SL++;7 [ _3 h1 J7 s- n
}
% L4 E: i8 z2 ~9 W( P' ^ USART0_ReceiveFifotime_ZC = 0; 3 S& `" g% C) ^- v) C& B) Y
USART0_ReceiveFifoTime_SL = 0; 7 r$ ^: K1 w1 h. Y4 Q' w
}2 m8 `5 Z1 A' y1 p- y4 F3 S
if(usart_interrupt_flag_get(USART0,USART_INT_FLAG_TBE) != RESET)
. P. {: ~/ v# E7 U8 g2 ]6 v. j {
+ [! p* {5 v1 z! B8 B if(USART0_SendFifoSp != USART0_SendFifoEp)
0 s# y4 n$ o4 S2 g; P {& y, _2 n6 U5 M- l+ p y
usart_data_transmit(USART0, USART0_SendFifo[USART0_SendFifoSp++]);
U+ o% J; q0 D" k3 W5 `- j7 J4 U }+ q& l/ C p- y0 Q, b
if(USART0_SendFifoSp == USART0_SendFifoEp)' D1 r/ I4 A2 _7 \& [5 b
{1 v" f4 y+ z( r
usart_interrupt_disable(USART0,USART_INT_TBE);! O9 \4 [, p# j% U
}
- K. s3 [1 w) X/ C( H8 W, Z1 x }
" O) M& X" M) s* E) f; b# t: ^8 W} + r7 ` q$ |7 W2 t
$ m8 X' s* m: i) n3 _
uint8_t USART0_ReadFifo_ZC(uint8_t *Buff)) y8 ?; @9 f- T# v( H
{
# R5 y) S* O9 Z' W4 h! Q uint8_t Sp;
; @4 D4 {9 M6 I1 ]: g- y uint8_t Ep;1 }. h5 m' l' S: V/ Y* J9 @
uint8_t Len = 0;
+ X) z5 l! W0 d4 {% B) ^& W
3 j* D7 k. V7 V0 S Sp = USART0_ReceiveFifoSp_ZC;
" D3 W h7 z* }, J8 X. z2 N$ `3 I Ep = USART0_ReceiveFifoEp_ZC;
. |" `1 p% @3 e( S while(Sp != Ep)
. B o+ ^0 u/ Z {0 a1 }. w9 Z( c ]# b( h4 g
*Buff = USART0_ReceiveFifo[Sp++];
$ ^. {* y3 c5 K Buff++;5 N; m4 @' d* T# z. d
Len++;+ l, g; g5 O0 v* M0 q
}
/ i) N6 T# [- k' z2 [ return(Len);, r7 a" }1 t. s) s
}
! H2 ^: ~4 P: S, ]+ A/******************************************************************************
! Y1 \6 u2 P" d9 l6 I# O, C. J*******************************************************************************/* _- Y; V$ D7 [0 h4 b
void USART0_DeleteFifo_ZC(uint8_t Len)
' q& H% C9 D# f7 {1 @# f{3 r' z! j$ y8 P' O. L. M" l
if(Len)
( {8 Y& [/ u. F. H7 h {5 n7 X7 V) a z/ \; |7 w
USART0_ReceiveFifoSp_ZC += Len;
6 Y C( j j+ x8 ? }* ?& l& s: s3 l b/ f
else
# j& P! S' V& J0 P( g {
% P; u3 u1 _- Y. [+ L USART0_ReceiveFifoSp_ZC = USART0_ReceiveFifoEp_ZC;
' e! |5 P" q- }- e+ `8 ? p }
) e, B9 h' o* B5 _; F}
& O" s4 @3 {/ |+ n6 a' X |
|