我试图做到的是无论是在一个函数返回的字节数组,这样我可以这样做:返回字节或传递一个数组的数组功能
byte array[8] = function();
我用我的自制的图书馆,以获得与i2c巴士的价值。这是库:
#ifndef MPULIBRARY_HPP
#define MPULIBRARY_HPP
#include "hwlib.hpp"
namespace mpulibrary{
class mpumanager
{
private:
hwlib::i2c_bus_bit_banged_scl_sda bus;
byte startregister[2] = {0x6B, 0};
byte adress = 0x68;
byte xregister[8] = {0x3B};
byte yregister[8] = {0x3D};
byte zregister[8] = {0x3F};
public:
mpumanager(hwlib::i2c_bus_bit_banged_scl_sda bus):
bus(bus)
{}
void startup(){
bus.write(adress, startregister, 2);
}
byte getXaxis(){
bus.write(adress, xregister, 1);
bus.read(adress, xregister, 2);
return xregister[8];
}
byte getYaxis(){
bus.write(adress, yregister, 1);
bus.read(adress, yregister, 2);
return yregister[8];
}
byte getZaxis(){
bus.write(adress, zregister, 1);
bus.read(adress, zregister, 2);
return zregister[8];
}
};
};
#endif // MPULIBRARY_HPP
我的其他代码:
auto manager = mpulibrary::mpumanager(i2c_bus);
for(;;){
manager.startup();
byte ydata[8] = {};
manager.getYaxis(ydata[8]);
byte zdata[8] = {0x3F};
i2c_bus.write(adress, zdata, 1);
i2c_bus.read(adress, zdata, 2);
int16_t yaxis = 0;
int16_t zaxis = 0;
yaxis = (ydata[0] << 8) + ydata[1];
zaxis = (zdata[0] << 8) + zdata[1];
hwlib::cout << "Y: " << yaxis << " Z:" << zaxis << "\n";
hwlib::wait_ms(100);
}
我希望有人能提供我一个答案。提前致谢!