串口调试助手接收到的信息和发送的信息不一致是为什么?????

2019-07-21 04:41发布

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
1662170080
2019-07-21 15:40
[mw_shl_code=c,true]int USART3_IRQHandler(void)
{       
       
        if(USART3->SR&(1<<5))//接收到数据
        {             
                                u8 temp;
                       
                         
                                static u8 count,last_data,last_last_data,Usart_ON_Count;
                                flag_send=0;
                               
                                if(Usart_ON_Flag==0)
                                {       
                    if(++Usart_ON_Count>10)Usart_ON_Flag=1;  //超过10次进入串口接收中断,使能串口控制
                                }
                                temp=USART3->DR;  //读取接收寄存器的值
                                usart3_send(temp);  //将读取到的数据发送过去
                          
                                   if(Usart_Flag==0)
                                                {       
                                                if(last_data==0xfe&&last_last_data==0xff)  //数据头
                                                Usart_Flag=1,count=0;       
                                               
                                                }
                                         if(Usart_Flag==1)
                                                {       
                                                        Urxbuf[count]=temp;     //依次采集数据
                                                  
                                                        count++;   
                                                       
                                                        if(count==8){Usart_Flag=0;}
                                                }
                                                last_last_data=last_data;  //保存上上次的数据
                                                last_data=temp;            //保存上次的数据
                                               
   }
//return 0;       
}[/mw_shl_code]

一周热门 更多>