2015-11-16 44 views
0

Iámciurrently工作在一個小程序,它應該檢查當前狀態的爆炸GPIO引腳和切換ist。對於這個使用java和PI4J的iám。當我的程序啓動時,LED燈亮起。但只要我將它作爲變量自動將狀態設置爲HIGH。有誰知道如何避免這種情況?我的代碼到目前爲止:Raspberry PI,Java和Pi4J控制GPIO無法獲得當前PinState

final GpioController gpio = GpioFactory.getInstance(); 
GpioPinDigitalOutput led =gpio.provisionDigitalMultipurposePin(RaspiPin.GPIO_07,PinMode.DIGITAL_OUTPUT); 


      PinState ledStatus = led.getState(); 
      if (ledStatus.isHigh()) 
      { 
       led.setShutdownOptions(true, PinState.LOW); 
       System.out.println("Set shutdownOption LOW"); 
      } 
      else 
      { 
       led.setShutdownOptions(true, PinState.HIGH); 
       System.out.println("Set shutdownOption HIGH"); 
      } 

     if(ledStatus.isHigh()) 
     { 
      System.out.println("LEDS aus..."); 
     } 
     else 
     { 
      System.out.println("LEDS an..."); 
     } 
     led.toggle(); 

這工程相當好。但正如我所說,在我啓動程序之前...... LED熄滅!只要我到達這一行: GpioPinDigitalOutput led = gpio.provisionDigitalMultipurposePin(RaspiPin.GPIO_07,PinMode.DIGITAL_OUTPUT); 指示燈亮起!我需要弄清楚在應用程序運行之前獲取狀態的方法,更改它,然後退出程序並切換LED。

感謝您的幫助:)

回答

0

嘗試使用provisionDigitalMultipurposePin方法來設置第一模輸入,以便讀取狀態,然後切換到輸出模式來改變引腳的狀態。

+0

謝謝,那個訣竅:) – Angl0r