OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3266|回复: 6

为什么接收的数据存不到Buff_RX[i++]这个数组中呢?

[复制链接]

16

主题

35

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
222
金钱
222
注册时间
2016-2-18
在线时间
26 小时
发表于 2016-3-1 13:09:06 | 显示全部楼层 |阅读模式
1金钱
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;
                                                                }
                                                        }
                                                       
                                                }
                                               
                                }
                               
                         }       
               

               

    }
       
}

最佳答案

查看完整内容[请看2#楼]

全局变量或者static
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2016-3-1 13:09:07 | 显示全部楼层
Apaire 发表于 2016-3-1 14:50
谢谢,请问有什么方法解决吗?

全局变量或者static
学无止境
回复

使用道具 举报

6

主题

188

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
432
金钱
432
注册时间
2016-1-19
在线时间
38 小时
发表于 2016-3-1 13:24:19 | 显示全部楼层
【u32 i=0,j=0,a=0,b=0;】设置为全局变量
原来你也在这里
回复

使用道具 举报

4

主题

98

帖子

0

精华

高级会员

Rank: 4

积分
755
金钱
755
注册时间
2015-9-16
在线时间
94 小时
发表于 2016-3-1 14:41:05 | 显示全部楼层
你的代码是每次进中断都会执行【u32 i=0,j=0,a=0,b=0;]。每次都会初始化。
回复

使用道具 举报

16

主题

35

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
222
金钱
222
注册时间
2016-2-18
在线时间
26 小时
 楼主| 发表于 2016-3-1 14:50:37 | 显示全部楼层
SeaOverflow 发表于 2016-3-1 14:41
你的代码是每次进中断都会执行【u32 i=0,j=0,a=0,b=0;]。每次都会初始化。

谢谢,请问有什么方法解决吗?
回复

使用道具 举报

4

主题

98

帖子

0

精华

高级会员

Rank: 4

积分
755
金钱
755
注册时间
2015-9-16
在线时间
94 小时
发表于 2016-3-2 09:21:49 | 显示全部楼层
5楼正解
回复

使用道具 举报

30

主题

705

帖子

1

精华

新手上路

积分
21
金钱
21
注册时间
2013-3-14
在线时间
52 小时
发表于 2016-3-2 10:00:21 | 显示全部楼层
唉,楼主也是醉了。全局变量和局部变量都麻麻分不清楚。
Buff_RX等变量,要放到中断函数外部去。要不用static声明。
static:是静态的。
原子哥是不是又要出黑科技了呀。^_^...
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 18:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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