UART3不进中断 大神们看下啊 指点

2019-07-20 08:23发布

UART可以发送单个字符,当加入中断后 无法进入中断 代码如下 :void USART3_IRQHandler(void)                        //′®¿ú3ÖD¶Ï·tÎñ3ìDò
{
        u8 Res;
#if SYSTEM_SUPPORT_OS                
        OSIntEnter();   
#endif
        if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
        {
                Res =USART_ReceiveData(USART3);       
               
                if((USART3_RX_STA&0x8000)==0)
                {
                        if(USART3_RX_STA&0x4000)
                        {
                                if(Res!=0x0a)USART3_RX_STA=0;
                                else USART3_RX_STA|=0x8000;         
                        }
                        else //»1ûêÕμ½0X0D
                        {       
                                if(Res==0x0d)USART3_RX_STA|=0x4000;
                                else
                                {
                                        USART3_RX_BUF[USART3_RX_STA&0X3FFF]=Res ;
                                        USART3_RX_STA++;
                                        if(USART3_RX_STA>(USART_REC_LEN-1))USART3_RX_STA=0;//½óêÕêy¾Y′íÎó,ÖØD¿aê¼½óêÕ          
                                }                 
                        }
                }                    
  }
#if SYSTEM_SUPPORT_OS         //èç1ûSYSTEM_SUPPORT_OSÎaÕ棬ÔòDèòaÖ§3ÖOS.
        OSIntExit();                                                                                           
#endif
}

#endif


代码几乎跟UART1的中断函数一样,只是把接收状态标志改了USART3_RX_STA,缓冲区改为USART3_RX_BUF;别的地方基本没变。跟中断相关的操作 我也基本配置了
#define EN_USART3_RX                         1        //定义使能接收
在串口3中还包含了
#if EN_USART3_RX       
        USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);//¿aÆôÏà1ØÖD¶Ï

        //Usart1 NVIC ÅäÖÃ
  NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=3;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority =3;               
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;               
        NVIC_Init(&NVIC_InitStructure);       
#endif


没办法进中断,大神看下啊。
在线等,实在是搞不明白。。。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。