找回密码
 注册
关于网站域名变更的通知
查看: 340|回复: 3
打印 上一主题 下一主题

UART串口进入不了中断是怎么回事?求解答

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-11-1 11:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

该用户从未签到

2#
发表于 2022-11-1 13:32 | 只看该作者
先找个例程能用就好,然后在这个基础上在自己修改程序。

该用户从未签到

3#
发表于 2022-11-1 13:47 | 只看该作者
串口外设时钟是否正常打开
2 f" h# J' A9 s接收使能以及接收中断是否打开

该用户从未签到

4#
发表于 2022-11-1 14:10 | 只看该作者
系统NVIC是否正确配置到对应的外设% L6 d7 J9 _9 L  J
测试单片机引脚上的波形配合分析
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-28 01:49 , Processed in 0.093750 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表