Keil莫名出现很多错误,求解!

2019-07-15 17:07发布

之前在做mpu的dmp,用的是IAR编译器。由于换了单片机,所以转战了keil,于是准备把dmp相关的.c  .h加入到keil的工程,结果编译出了一堆问题,大部分都是left side of asn-op not an lvalue.以及各种syntax错误。相关的引脚定义什么的我都改过来了,结果依然有一堆这种错误。不知道为什么。
举个例子:
    gyro_bias_body[0] = (long)(((long long)gyro_bias_body[0] * GYRO_SF) >> 30);
    gyro_bias_body[1] = (long)(((long long)gyro_bias_body[1] * GYRO_SF) >> 30);
    gyro_bias_body[2] = (long)(((long long)gyro_bias_body[2] * GYRO_SF) >> 30);

每行都有错误,错误是:syntax error near 'L',  syntax error near ')'
    regs[0] = (unsigned char)((gyro_bias_body[0] >> 24) & 0xFF);
    regs[1] = (unsigned char)((gyro_bias_body[0] >> 16) & 0xFF);
    regs[2] = (unsigned char)((gyro_bias_body[0] >> 8) & 0xFF);

这个的错误是,'>>',bad operand type
    gyro_bias_body[0] = bias[dmp.orient & 3];
    if (dmp.orient & 4)
        gyro_bias_body[0] *= -1;
    gyro_bias_body[1] = bias[(dmp.orient >> 3) & 3];
    if (dmp.orient & 0x20)
        gyro_bias_body[1] *= -1;
    gyro_bias_body[2] = bias[(dmp.orient >> 6) & 3];
    if (dmp.orient & 0x100)
        gyro_bias_body[2] *= -1;

他们的错误就是left side of asn-op not an lvalue.
实在不解!向各位大神求解!感谢!

屏幕快照 2015-05-18 下午8.20.37.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
说的好像真的
1楼-- · 2019-07-15 17:09
变量声明的位置问题吧?我之前也是这个问题,最后发现是由于变量的声明没有放到最开始导致。
Aidaohuakai
2楼-- · 2019-07-15 22:47
楼上正解!所以啊,最好按照ANSI C标准来写,移到哪个编译器都能编译通过!
wono01
3楼-- · 2019-07-16 00:43
 精彩回答 2  元偷偷看……
zzxyyy
4楼-- · 2019-07-16 03:35
说的好像真的 发表于 2015-5-19 11:27
变量声明的位置问题吧?我之前也是这个问题,最后发现是由于变量的声明没有放到最开始导致。

放到最开始?你是说#include下面么?
zzxyyy
5楼-- · 2019-07-16 08:46
wono01 发表于 2015-5-19 20:14
keil支持long long吗?

好像不,后来把longlong改成了long,问题依旧

一周热门 更多>