| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 341 人关注过本帖
标题:为什么传了参,参数内容会丢!
取消只看楼主 加入收藏
lqab1983
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-11-29
结帖率:16.67%
收藏
已结贴  问题点数:30 回复次数:0 
为什么传了参,参数内容会丢!
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
快速回复:为什么传了参,参数内容会丢!
数据加载中...
 
   



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

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