这是英特尔运行气压计的示例代码。
//Load Barometer module
var bmpx8x = require('jsupm_bmpx8x');
// load this on i2c
var myBarometerObj = new bmpx8x.BMPX8X(0, bmpx8x.ADDR);
var pressure, temperature, altitude, sealevel;
// Print the pressure, altitude, sea level, and
// temperature values every 0.1 seconds
setInterval(function()
{
var pressure = myBarometerObj.getPressure();
var temperature = myBarometerObj.getTemperature();
var altitude = myBarometerObj.getAltitude();
var sealevel = myBarometerObj.getSealevelPressure();
var BMPX8Xresults = "pressure value = " + pressure;
BMPX8Xresults += ", altitude value = " + altitude;
BMPX8Xresults += ", sealevel value = " + sealevel;
BMPX8Xresults += ", temperature = " + temperature;
console.log(BMPX8Xresults);
}, 100);
// Print message when exiting
process.on('SIGINT', function()
{
console.log("Exiting...");
process.exit(0);
});

但是当我执行此代码时,会抛出以下错误。
var myBarometerObj = new bmpx8x.BMPX8X(0, bmpx8x.ADDR);
^
Error: Illegal arguments for construction of _exports_BMPX8X
at Object.<anonymous> (/home/root/bmpx8x.js:31:22)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:935:3
有人能给我一些帮助吗?
答案 0 :(得分:0)
我知道这是一篇旧帖子,但我可能会有一个答案,供将来参考,因为我遇到了同样的问题。
在我的情况下,当我尝试将BMP180传感器连接到Edison Mini分线板上的I2C6时,我收到了同样的错误。
以下是可能解决问题的一些步骤:
运行以下命令:
$ i2cdetect -y -r 6
如果产生错误,您需要使用以下命令配置引脚:
$ echo 27 > /sys/class/gpio/export
$ echo 28 > /sys/class/gpio/export
$ echo mode1 > /sys/kernel/debug/gpio_debug/gpio27/current_pinmux
$ echo mode1 > /sys/kernel/debug/gpio_debug/gpio28/current_pinmux
还要确保您的传感器已连接,否则您将收到远程I / O错误。您可以使用以下命令调试theese错误:
$ journalctl -f
如果您使用的是I2C6,则需要将您的第一个参数设置为6,否则它将默认为总线1.
您可能还想尝试更新您的mraa库,以防万一。