串口接收总是进溢出中断

2019-07-21 04:12发布

昨天的问题还是没有解决,接收数据老是丢,或者多,今天发现串口总是产生ORE错误,这什么造成的,大佬们给点意见

[mw_shl_code=applescript,true]void USART1_IRQHandler(void)                        //串口1中断服务程序
{
        u8 r;
        static u8 cnt = 0;
        if(USART_GetFlagStatus(USART1,USART_FLAG_ORE) != RESET)
        {
                USART_ClearFlag(USART1,USART_FLAG_ORE);
                r =USART_ReceiveData(USART1);//(USART1->DR);        //读取接收到的数据
                printf("error");
        }
       
        if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)  //接收中断
        {
                r =USART_ReceiveData(USART1);//(USART1->DR);        //读取接收到的数据
                buf[cnt ++] = r;
                if(r == ' ')
                {
                        buf[cnt] = '';
                        cnt = 0;
                        printf("%s",buf);

                }
        }
        USART_ClearFlag(USART1,USART_FLAG_RXNE);
} [/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。