2015-02-10 108 views
6

我正在使用樹莓派和java來使LED通過使用pi4j閃爍,一切都被清除並正常工作,LED按照代碼閃爍但是當我運行它導致以下錯誤,第二次,我已經搜索器很多有很多相同的問題沒有明確的答案如何解決這個問題,任何幫助,將不勝感激「此GPIO引腳已存在:」GPIO 1第二次異常

final GpioController gpio = GpioFactory.getInstance(); 
      final GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin(
        RaspiPin.GPIO_01, "PinLED", PinState.HIGH); 
      System.out.println("light is: ON"); 
      Thread.sleep(2000); 


      pin.low(); 
      System.out.println("light is: OFF"); 
      Thread.sleep(1000); 


      System.out.println("light is: ON for 1 second"); 
      pin.pulse(1000, true); 

      pin.setShutdownOptions(true, PinState.LOW, PinPullResistance.OFF); 
      gpio.shutdown(); 

這是完全錯誤我我越來越

com.pi4j.io.gpio.exception.GpioPinExistsException: This GPIO pin already exists: GPIO 1 
    com.pi4j.io.gpio.impl.GpioControllerImpl.provisionPin(GpioControllerImpl.java:507) 
    com.pi4j.io.gpio.impl.GpioControllerImpl.provisionDigitalOutputPin(GpioControllerImpl.java:645) 
    com.pi4j.io.gpio.impl.GpioControllerImpl.provisionDigitalOutputPin(GpioControllerImpl.java:672) 
    com.pi4j.io.gpio.impl.GpioControllerImpl.provisionDigitalOutputPin(GpioControllerImpl.java:684) 
    com.restFulService.Controller.LedControl.ledTestFun(LedControl.java:52) 
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    java.lang.reflect.Method.invoke(Method.java:483) 
    org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176) 
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426) 
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:202) 
    net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:180) 
    org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:439) 
    org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:178) 

回答

12

您需要取消配置您的引腳。

後ü調用.shutdown()你需要做以下

... 
gpio.shutdown(); 
... 
gpio.unProvisionPin(pin); 
... 

這應該釋放pi4j的內部參考,並允許您以後另配它

+0

感謝這個工作。這是選擇和最好回答這個問題 – Vicky 2015-02-13 04:28:25