[英]Access GPIO on beaglebone black using Java ME Embedded 8
我想知道是否可以使用嵌入式Java ME访问beaglebone黑色上的gpio,i2C,uart等。 我知道Java本机访问是有可能的,但是现在Java ME Embedded 8中包含一个API Device I / O 1.0。 我正在用beaglebone黑色运行debian。
JavaME Embedded 8.1仅在目前在Linux上运行的RaspberryPi(以及某些其他非linux嵌入式板上)上受支持。
我还没有在另一个Linux板(例如Beagleboard)上使用RPi运行时进行过测试,但是我认为它将绝对无法使用。 根据运行时的实现方式,对底层IO(如GPIO或I2C)的访问可能取决于平台。
请注意,Device / IO API已集成到Java平台的OpenJDK实现中(因此,该API并非特定于JavaME)。 但是在这里,这也仅限于RaspberryPi。
尝试libbulldog: http ://libbulldog.org/bulldog/
或Kura :(您需要BeagleBone Black RevC。)
https://www.eclipse.org/kura/index.php
http://eclipse.github.io/kura/doc/beaglebone-quick-start.html
您可以在此处找到示例: http : //www.oracle.com/webfolder/technetwork/tutorials/obe/java/RaspberryPi_GPS/RaspberryPi_GPS.html#overview
它应该可以工作...但是我正在尝试执行此操作,但没有得到任何好的结果。
祝你好运^^
我在访问BeagleBoneBlack的GPIO时遇到了类似的问题。
我设法使用Linux内核导出到用户空间的GPIO设备树覆盖来解决此问题。 最好的部分是:一个只需要Java SE 8的Jar。
我的代码在GitHub上: https : //github.com/eitch/ch.eitchnet.beaglebone
要使其在Raspberry Pi上运行,需要完成两件事:
我认为这些事情应该不是什么大问题。
完成此操作后,访问GPIO就很简单:
// Get Bridge:
GpioBridge gpioBridge = GpioBridge.getInstance();
Gpio pin8_07 = gpioBridge.getGpio(Pin.P8_07, Direction.IN);
// Read an input GPIOs value:
Signal currentSignal = gpioBridge.readValue(pin8_07);
System.out.println(pin8_07 + " currently has signal " + currentSignal);
Writing Output Pins
// Write an output GPIOs value:
Gpio pin8_08 = gpioBridge.getGpio(Pin.P8_08, Direction.OUT);
gpioBridge.writeValue(pin8_08, Signal.HIGH);
System.out.println("Set signal of " + pin8_08 + " to " + Signal.HIGH);
Observing Input Pins
// To be notified of changes to an input GPIO, register a GpioSignalListener:
gpioBridge.register(pin8_07, gpio -> System.out.println("Signal of "+pin8_07 + " has changed to " + gpio.getSignal()));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.