"This GPIO output already exists:" GPIO 1 exception in the second half

I am working on raspberries pi and java so that the LED blinks using pi4j, everything clears up and works fine, the LED blinks according to the code, but when I run the second time, it causes the following error: I have a search lot there is a lot of the same question without a clear answer, how to solve it, any help will be appreciated

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(); 

This is a complete error that I get

 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) 
+6
source share
1 answer

You need to remove your output.

After calling u.shutdown () you need to do the following

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

This should free the pi4j internal link and allow you to view it later.

+12
source

Source: https://habr.com/ru/post/982244/


All Articles