我想通过 Java 访问我的 Pi 的 GPIO。是的,我知道有 Pi4J,但我需要使用一个名为 RCSwitch-Pi 的库(在 github 上),它发送 433mhz 信号(实际上我相信它可以做更多的事情,但这就是我需要的)
问题是,如果我从普通的 c++ 中使用库本身,我可以控制我的电源插头并传输我的信号。但是一旦我通过 JNI 从 java 中使用它,GPIO 引脚就永远不会被触发。我插入了一个 LED 进行检查,但没有产生电流。它一直到调用函数的脚本点
digitalWrite(this->nTransmitterPin, HIGH);
delayMicroseconds( this->nPulseLength);
}
但就是这样。它实际上并没有执行“digitalWrite”,但如果不是从 Java 调用,它就会执行此操作。
是的,我使用 SUDO 权限执行,所以这不是问题:-/
另外,这是出于好奇:
代码中写着“delayMicroseconds”,变量“nPulseLength”设置为 300。这意味着在调用下一个幅度之前,每个幅度都设置为 300 毫秒。所以它可能很简单:
_ _
| |_| |_
1010什么的。无论如何,433mhz 脉冲需要每个波长 60cm,或者换句话说:
2.30947 纳秒 * 光速 = 69.2361688 厘米
这意味着 GPIO 开关必须在 2.30 纳秒内从 0 切换到 1 并返回到 0。一个状态切换的时间少于 300 毫秒,不是吗?
就是想...