求助 STM32F4接收广彩串口屏数据时数据不对

2019-07-21 04:10发布

    串口屏发送的数据格式如图:
void USART2_IRQHandler(void)
{
    static uchar rc[100];
    static int i=0,j=0;
        int zh=0; 
        if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET)
        {
                rc = USART_ReceiveData(USART2);
                i++;
                if(rc[i-3]==0xFF)
                {
                        for(j=8;j<i-4;j++)                                                                                                                                   
                        {                                                                                                                                     
                                zh=zh*10+(rc[j]-48);
                                while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);                                                                                   
                        }
                        TIM_SetCompare4(TIM3, zh);
                        printf("%d ",zh);        
                        i=0;j=0; zh=0;rc=0;
        }         
}
以上是串口接收数据的程序,现在的情况是这样的:
        串口只能第一次正确接收到一个完整的数字数据,如返回“366”
        但第二次就是乱码,一般先是返回0       0,
        这是串口屏的问题,还是32串口的问题?
        纠结中。。 
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。