C++ 我正在尝试制作一个自平衡机器人,但编译时出错。我不知道';我不知道如何修理它 Arduino:1.8.5(Windows 8.1),板:“Arduino/Genuino” 在C:\Users\Memay Family\Downloads\How\u-to\u-Make\u-balling\u-Robot\u-at\u-home\How\u-to\u-Make\u-balling\u-Robot\u-at\u-home中包含的文件中。ino:11:0: C:\Users\Memay Family\Documents\Arduino\libraries\MPU6050/MPU6050\u 6Axis\u MotionApps20.h:在成员函数“uint8\u t MPU6050::dmpGetAccel(int32\u t*,const uint8\u t*)”中: C:\Users\Memay Family\Documents\Arduino\libraries\MPU6050/MPU6050\u 6Axis\u MotionApps20.h:580:31:警告:左移位计数>=类型宽度 数据[0]=((数据包[28]
心理调试:C++ 我正在尝试制作一个自平衡机器人,但编译时出错。我不知道';我不知道如何修理它 Arduino:1.8.5(Windows 8.1),板:“Arduino/Genuino” 在C:\Users\Memay Family\Downloads\How\u-to\u-Make\u-balling\u-Robot\u-at\u-home\How\u-to\u-Make\u-balling\u-Robot\u-at\u-home中包含的文件中。ino:11:0: C:\Users\Memay Family\Documents\Arduino\libraries\MPU6050/MPU6050\u 6Axis\u MotionApps20.h:在成员函数“uint8\u t MPU6050::dmpGetAccel(int32\u t*,const uint8\u t*)”中: C:\Users\Memay Family\Documents\Arduino\libraries\MPU6050/MPU6050\u 6Axis\u MotionApps20.h:580:31:警告:左移位计数>=类型宽度 数据[0]=((数据包[28],c++,arduino,C++,Arduino,心理调试:数据和数据包是MPU6050::dmpGetAccel的参数,您正试图将四个字节组合成一个字 您需要在uint32\u ts中执行算术,而不是uint8\u ts,否则您总是会溢出值 更改窗体的所有行 data[n] = ((packet[m] << 24) + (packet[m+1] << 16) + (packet[m+2] << 8) + packet[m+3]); data[n]=((packet[m]查看代码下面的一行,并查看指向代码中
数据
和数据包
是MPU6050::dmpGetAccel
的参数,您正试图将四个字节组合成一个字
您需要在uint32\u t
s中执行算术,而不是uint8\u t
s,否则您总是会溢出值
更改窗体的所有行
data[n] = ((packet[m] << 24) + (packet[m+1] << 16) + (packet[m+2] << 8) + packet[m+3]);
data[n]=((packet[m]查看代码下面的一行,并查看指向代码中出现问题的位置的小字符^
data[n] = ((uint32_t{ packet[m] } << 24) + (uint32_t{ packet[m+1] } << 16) + (uint32_t{ packet[m+2] } << 8) + uint32_t{ packet[m+3] });