TI中文支持网
TI专业的中文技术问题搜集分享网站

选用芯片MSP430FG437,在用IAR实际调试中,调用一个函数时,传入的参数不对,而且在运行过程中也会影响到一个定义的全局变量,请问这是什么原因引起的?

比如:WorkStatus定义的是一个全局变量,WorkStatus等于0x22,函数MoveRight4Bit中传入的形参len1等于6,但是函数中len1 怎么就变成了1?然后继续运行,WorkStatus以这种方式变化0x22–0x02–0x00,最终变成0x00.

void Move(u8 *s,u8 len1,u8 len)

{

    u8 i;

    for(i=len1;i>0;i–)

    {

        do

        {

             s[len-1]=( ) | ();

             ……

        }

    }

}

 

gaoyang9992006:

你可以先在电脑的软件里测试一下这个函数,每一步都打印结果看看。这个跟单片机无关。是C语言编程的问题

gaoyang9992006:

你可以先在电脑的软件里测试一下这个函数,每一步都打印结果看看。这个跟单片机无关。是C语言编程的问题

灰小子:

猜不出。建议上传下完整代码

Susan Yang:

同意gaoyang9992006的说法,建议您先测试一下这个函数

赞(0)
未经允许不得转载:TI中文支持网 » 选用芯片MSP430FG437,在用IAR实际调试中,调用一个函数时,传入的参数不对,而且在运行过程中也会影响到一个定义的全局变量,请问这是什么原因引起的?
分享到: 更多 (0)