|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
void USART0_IRQHandler(void)1 D" E% E/ z% Y# B4 l; `7 d
{
) l/ H B8 z# s/ e2 Y if(usart_interrupt_flag_get(USART0,USART_INT_FLAG_RBNE) != RESET)
; o' Q9 B5 v2 J+ @ {
7 p. y+ s/ c8 Z! M4 j USART0_ReceiveFifo[USART0_ReceiveFifoEp_ZC] = usart_data_receive(USART0);$ b" k9 y3 t4 J- l
USART0_ReceiveFifoEp_ZC++;
; O1 g# V% l) q6 c; g3 l. v USART0_ReceiveFifoEp_SL++;- K( A% Y, [; R' O
if(USART0_ReceiveFifoEp_ZC == USART0_ReceiveFifoSp_ZC)
' f/ ~/ a7 Q1 @# m7 G {8 Z7 {$ m1 U' ?
USART0_ReceiveFifoSp_ZC++;
# o( ]% ~* ^% v9 y; z }
9 Z) c2 U3 _, | A& T7 @0 \ if(USART0_ReceiveFifoEp_SL == USART0_ReceiveFifoSp_SL)
" C- B0 B/ Z; u {1 _3 N' [8 x u- c
USART0_ReceiveFifoSp_SL++;! P3 k) t, p* j
}1 |- Z u- C0 ]( s& R
USART0_ReceiveFifotime_ZC = 0; 8 s) p. T' t' p4 _2 Q/ k/ V7 S8 o
USART0_ReceiveFifoTime_SL = 0;
7 u' ~, a* S" V; \8 ^( I }
' G+ @" P2 q" u if(usart_interrupt_flag_get(USART0,USART_INT_FLAG_TBE) != RESET)
# r$ I3 C* E1 P& r0 G: @" M9 a {" d+ D H: G6 F* q
if(USART0_SendFifoSp != USART0_SendFifoEp)5 L$ ]& ]' O( a9 y8 h
{
& C$ H% W3 v q1 ]! r! `9 e usart_data_transmit(USART0, USART0_SendFifo[USART0_SendFifoSp++]);
3 F- {$ m8 |) {2 @9 H/ c* q. J }- {0 `* _5 E, |1 `
if(USART0_SendFifoSp == USART0_SendFifoEp)( M, \$ z. O; w0 u! p+ o2 W
{
: j+ Q$ G9 [1 x2 |: @ usart_interrupt_disable(USART0,USART_INT_TBE);
9 n9 Z8 K; @6 O }3 D! T; i( o0 w; ]9 F/ o% E1 E# |
}* U& v7 C" {0 e, X4 P# R6 d! s
} Q& D6 ^4 ?% W8 r! [
$ }( g' I/ r0 a7 W6 zuint8_t USART0_ReadFifo_ZC(uint8_t *Buff)
) o5 q% o8 G+ }- j3 u{' _) a- I/ s9 k- B( w7 }% v/ M w; t
uint8_t Sp;( o* ~3 c: ~, c
uint8_t Ep;- ^( [) L `3 S! o! B/ a
uint8_t Len = 0;
9 ~3 ~" k; `8 ~! ^- U( ?) n% w
; ^% L! i6 l/ c Sp = USART0_ReceiveFifoSp_ZC;# @6 X# f) p+ @. x! j* Y: t2 @* p# F( {
Ep = USART0_ReceiveFifoEp_ZC;/ t& i$ N8 A' P, _/ R
while(Sp != Ep)0 ^, c5 [* J( O; P
{
8 z6 R" v1 Z- J* W1 ` e *Buff = USART0_ReceiveFifo[Sp++];
' W" ~6 A/ N5 I3 Y, Y- H+ T Buff++;
8 s; d9 b, {( v Len++;3 R: K& \# H3 r4 Z O
}+ N6 M. w: `6 F# K# E0 q4 u" \
return(Len);
5 n3 g+ u6 @+ M# t, d, l1 H}* l) N- f6 Z S: J1 y Q% q
/******************************************************************************
7 w( s- B. ~" b/ z& ]*******************************************************************************/3 R8 b7 N( \4 d$ R. P3 Y
void USART0_DeleteFifo_ZC(uint8_t Len)7 ]* i9 ~( h( e/ \' x; H
{% U" y8 M- E" N5 b
if(Len)
+ P7 {0 _9 r+ o' Z+ X) C {: f8 i- F! `; I5 K! c8 b ^
USART0_ReceiveFifoSp_ZC += Len; {/ L* O p) p* {/ W$ h
}+ @# `+ r: w+ y D d
else
+ \0 y9 q: x/ J* Y; Y7 ]3 m {& U" Y+ l, o. o H, b
USART0_ReceiveFifoSp_ZC = USART0_ReceiveFifoEp_ZC;( ]8 a2 u& u/ @, d/ ?7 q. {
}
. R+ R5 c/ a$ s: ?}! V( N8 r! A" k5 r6 i0 N# I
|
|