首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过JNI从java访问wiringPi (GPIO)

通过JNI从java访问wiringPi (GPIO)
EN

Stack Overflow用户
提问于 2013-10-07 02:00:59
回答 1查看 739关注 0票数 0

我想通过Java访问我的Pi的GPIO。是的,我知道有Pi4J,但是我需要使用一个叫做RCSwitch-Pi的库(在github上),它可以发送433 what的信号(实际上我相信它可以做更多的事情,但这正是我需要的)

问题是,如果我在普通的c++中使用这个库本身,我就可以控制我的电源插头,我的信号就会被传输。但是,一旦我通过JNI从java使用它,GPIO引脚就再也不会被触发了。我插入LED进行检查,但没有产生电流。它一直走到脚本中调用函数的地方

代码语言:javascript
复制
digitalWrite(this->nTransmitterPin, HIGH);
      delayMicroseconds( this->nPulseLength);
}

但仅此而已。它实际上并不做"digitalWrite“,但如果不是从Java中调用的话,它就做了。

是的,我使用SUDO权限执行,所以这不是问题所在:-/

另外,这也是出于好奇:

代码中的值为"delayMicroseconds“,变量"nPulseLength”设置为300。这意味着在调用下一个振幅之前,每个振幅都被设置为300ms。所以它可以像下面这样简单:

代码语言:javascript
复制
 _   _
| |_| |_  

为了1010或者别的什么。无论如何,433 the的脉冲将要求每个波的长度为60厘米,或者换句话说:

2.30947纳秒*光速= 69.2361688厘米

这意味着GPIO开关必须在2.30纳秒内从0切换到1,再切换回0。对于一个状态切换来说,少于300毫秒是非常糟糕的,不是吗??

只是想知道..。

EN

回答 1

Stack Overflow用户

发布于 2013-10-07 22:06:10

呼叫

代码语言:javascript
复制
if (wiringPiSetup () == -1) {
   printf("noWiringPiSetup");
}

成功了。它是在本地main函数中调用的,但不是在我的共享库中调用的,因此一切都很好,但GPIO引脚从未被访问过……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19212048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档