STM32F4串口触摸屏点击引起单片机/ARM系统复位的解决

在使用迪文T5L系列单片机的时候,点击某个控件总是引起系统复位,通过监控,单片机并没有程序跑飞或者独立看门狗复位,经过仔细对比发现是STM32F4单片机的接收中断函数在进入之后未清除标志位引起,具体如下:

void USART2_IRQHandler(void)                    //串口2接收中断
{
      static u8 Res2;
      static u8 RXA5=0,RX5A=0;
    if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)  //½ÓÊÕÖжÏ(½ÓÊÕµ½µÄÊý¾Ý±ØÐëÊÇ0x0d 0x0a½áβ)
        {
            USART_ClearITPendingBit(USART2,USART_IT_RXNE); //这条一定不能少,否则就会引起可能宕机或者重启;
         if(!RXFRMOK2)
        {         
            Res2 =USART_ReceiveData(USART2);    
                if(RX5A)
                    {
                        if(RXA5)
                            {
                                rec2[LEN2]=Res2;      
                                LEN2++; 
                                if(LEN2==(rec2[0]+1))
                                    {
                                        RXFRMOK2=1;
                                        RX5A=RXA5=0;
                                    }
                            }
                        else
                            {
                                    if(Res2==0xA5)
                                    {
                                        RXA5=1;    
                                        LEN2=0;                    
                                    }
                                    else
                                    {
                                        RX5A=0;
                                    }
                            }
                    }
                    else 
                    {
                        if(Res2==0x5A)
                        {
                            RX5A=1;                        
                        }    
                    }
           }
     } 

 

将标志位清除之后,一切正常,触摸屏可以随意快速点击都OK了;谨记!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值