求助 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串口的问题?
        纠结中。。 
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
真的好多巧合
1楼-- · 2019-07-21 08:11
这个问题解决了:
与设置的画面数量有关,具体的原因还没有找到,好像是跟位有关。。。
xuande
2楼-- · 2019-07-21 11:58
 精彩回答 2  元偷偷看……
真的好多巧合
3楼-- · 2019-07-21 14:07
回复【2楼】xuande:
---------------------------------
解决上次的问题了,这次问题又来了
http://www.openedv.com/posts/list/0/44317.htm?fromAll=0#254890
谢谢,嘿嘿

一周热门 更多>