去掉printf会导致程序结果不对,请各位大神指点一下!!!

2019-07-21 07:35发布

附一段程序:以上部分省略------


                temp3 = temp3/Test.Pole;
                printf("temp3=%d ",temp3);        //此句不加返回的temp4不对
                temp4 = (u16)(1.0*temp3/Result.Period[ch1]*36000);
                if(temp4>18000)
                {
                        temp4=36000-temp4;
                }
        }
        printf("temp4=%d ",temp4);
        return temp4;


}

去掉printf会导致程序结果不对,请各位大神指点一下!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
sunzhifan
1楼-- · 2019-07-22 21:35
xqn2012 发表于 2018-11-21 16:21
很有可能 temp3 的数据类型 不对

temp3是无符号长整型u32,存的是两个DWT->CYCCNT的差值,应该不会有问题
edmund1234
2楼-- · 2019-07-23 01:59
 精彩回答 2  元偷偷看……
sunzhifan
3楼-- · 2019-07-23 02:08
edmund1234 发表于 2018-11-21 18:56
printf("temp3=%d ",temp3);  这一句其实挺耗资源的, 不算转换的时间, 就已经Delay了  字串的长度x10/ ...

延时加过了,无论多长时间都不行
douxiaolingyun
4楼-- · 2019-07-23 06:33
你有没有试过在U32前面加Static修饰啊??可以不可以?
douxiaolingyun
5楼-- · 2019-07-23 11:21
如果不行的话那就temp3加,temp4不加。再试试
qiousanxi
6楼-- · 2019-07-23 13:56
你能仿真吗????单步调试,看看每个部分的值

一周热门 更多>