野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10213|回复: 1

为什么Buff_RX[i++]中存不了接收到的数据?

[复制链接]
发表于 2016-3-1 13:26:23 | 显示全部楼层 |阅读模式
void USART2_IRQHandler(void)
{
//   if(USART_GetITStatus(USART2,USART_IT_RXNE)!=RESET)
//   {
//              USART_ClearFlag(USART2,USART_FLAG_TC);
//                USART_SendData(USART2,USART_ReceiveData(USART2));
//                while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET);
//   }
       
        u32 i=0,j=0,a=0,b=0;                         /* 等待USART1接收数据完毕 */
        //const char *s;
        u8 Buff_RX[1000];
        u8 Buff_TX[80];

        if(USART_GetFlagStatus(USART2 , USART_IT_RXNE) == SET)
    {
                USART_ClearITPendingBit(USART2, USART_IT_RXNE);
                Buff_RX[i++]=USART_ReceiveData(USART2);
                //USART_SendData(USART2,*Buff_RX);
                //while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET);
                        if(i>1000)
                        {
                                /*for(j=0;j<1000;j++)
                                {
                                        USART_SendData(USART2,Buff_RX[j]);
                                }*/
                                i=0;
                              for(j=0;j<1000;j++)
                                {
                                        if(Buff_RX[j]=='M')
                                                if(Buff_RX[j+1]=='C')
                                                {
                                                        for(a=0;a<80;a++)
                                                        {
                                                                Buff_TX[a]=Buff_RX[j++];
                                                                if(Buff_TX[a]==0X0D)
                                                                {
                                                                        for(b=0;b<a;b++)
                                                                        {
                                                                                USART_SendData(USART2,Buff_TX[b]);
                                       while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)==RESET);
                                                                        }
                                                                return;
                                                                }
                                                        }
                                                       
                                                }
                                               
                                }
                               
                         }       
               

               

    }
       
}

回复

使用道具 举报

发表于 2016-3-1 18:26:54 | 显示全部楼层
直接把buff的数据打印出来看看,不要加if比较
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-27 20:48 , Processed in 0.037210 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表