标题:为什么传了参,参数内容会丢!
只看楼主
lqab1983
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-11-29
结帖率:16.67%
已结贴  问题点数:30 回复次数:1 
为什么传了参,参数内容会丢!
1.我的设备从串口收到一串字符,经过解析把相关内容存到我定义的set_time 和 set_name两个数组里,这两个定义在函数里,是局部变量。然后我把他们作为参数传到函数Response_ReInit()里,
(1)
u8 set_time[5] = {0};      
u8 set_name[16] = {0};
   
memcpy(set_time, rev_buf + num + 1, 5);     //保存操作时间               
memcpy(set_name, rev_buf + num + 6, 16); //保存操作员               
if(ReInit())               
{                    
    Response_ReInit(set_time, set_name, TXXX_addr, txsq_context, txsqcontext_lens);               
}

(2)
u8 Response_ReInit(u8 *time, u8 *name, u32 Dest_Address, char *context, u16 lens)
{
    u16 currlen = 0;
    //控制
    context[currlen++] = 0x00;
    //业务类型
    context[currlen++] = 0xB3;
    //初始化结果
    context[currlen++] = 0; //0=初始化完成, 1=重初始化失败
       //用户机ID号
    context[currlen++] = ICXX.localID[0];
    context[currlen++] = ICXX.localID[1];
    context[currlen++] = ICXX.localID[2];
    //时间
    memcpy(context + currlen, time, 5);
    currlen += 5;
    //操作员
    memcpy(context + currlen, name, 16);
    currlen += 16;
    //电文长度
    lens = currlen + 1;
    //校验和
    context[currlen] = BD1_Chksum(context, currlen);
    //发送数据
    if(bd1_using != 1)
    {
        BD1_TXSQ(Dest_Address, context, lens);   
        bd1_using = 1;
    }        
    return 1;
}
2.但我现在的问题是这两个变量里的值值我通过打印数值看到确实是存进去了,但在Response_ReInit()里这2个变量的值奇怪的全是0了。
其中,那个if(ReInit())               
{                    
    Response_ReInit(set_time, set_name, TXXX_addr, txsq_context, txsqcontext_lens);               
}的ReInit()是对整个系统的重初始化,这个函数的执行非常占用时间,大概需要执行10秒,因为他对EEPROm的8500多个字节的数据做了写0操作,不知道这会不会有影响,set_time 和 set_name不在写0操作里

3. 我无奈的把这个2个变量定义成全局的,问题就不会发生,参数内容可以很好传递,这是为什么?
我水平比较低,请教大家了 !
搜索更多相关主题的帖子: 操作员 
2014-10-14 13:33
pycansi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:418
专家分:1060
注 册:2012-7-26
得分:30 
可以在 ReInit 和 Response_ReInit 之间查看下两数组,看是否被清0


莫问前尘有愧,但求今生无悔
2014-10-14 15:20



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-437246-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.491680 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved