GPIO 핀을 정리하는 이유는 무엇입니까?


13

파이썬에서 프로그램을 실행할 때 GPIO를 사용할 때 왜 정리 명령을 원합니까?


참고로, C 프로그램과 함께 사용되는 wirePi 라이브러리에는 Cleanup()기능 이 없습니다 . GPIO.cleanup()파이썬 기능은 변경 사항을 정리하기 위해 변경 사항을 기록하기 때문에 사용할 수 있는 것으로 보입니다 . raspberrypi.stackexchange.com/questions/44807/…
Richard Chambers

답변:


14

이 기사에서 언급 한 것처럼 RPi.GPIO 기본 사항 3 – GPIO 프로그램을 깨끗하게 종료하고 경고를 피하고 Pi를 보호하는 방법 , 올바른 GPIO.cleanup () 사용,

GPIO.cleanup ()의 올바른 사용법

RPi.GPIO는 사용 된 모든 포트를 정리하는 내장 함수 GPIO.cleanup ()을 제공합니다. 그러나 이것이 무엇을하는지 분명히하십시오. 현재 프로그램에서 설정 한 포트에만 영향을줍니다. 이 프로그램에서 사용한 모든 포트를 입력 모드로 다시 설정합니다. 예를 들어, 포트를 HIGH로 설정하고 실수로 GND (LOW)에 연결하면 포트가 단락되어 튀길 수 있습니다. 입력은 0V (LOW) 또는 3.3V (HIGH)를 처리 할 수 ​​있으므로 포트를 입력으로 유지하는 것이 더 안전합니다.

그것이 당신의 의심을 없애기를 바랍니다.


5

정리 방법을 사용할 필요가 없습니다.

내가 아는 한 RPi.GPIO 및 RPIO.GPIO Python 모듈 만 정리 방법이 있습니다. 정리 방법은 입력했던 모든 gpios를 설정하고 해당 gpios의 내부 풀업 / 다운을 비활성화합니다.

내 pigpio Python 모듈에는 정리 방법이 없으며 내가 알고있는 한 wirePi2 Python 모듈도 없습니다.


정리 명령의 목적은 무엇입니까?
인간

1
@Human 나는 많은 목적이 없다고 생각합니다. 필요하다고 생각되면 그런 방법을 추가했을 것입니다. 그의 답변에서 dastaan은 RPi.GPIO 저자가 사용한 추론을 지적했습니다. 그것은 필사적으로 구부러진 것일 수 있습니다. 프로그램이 완료된 후 GPIO를 입력으로 남겨 두려면 입력으로 설정해야합니다.
joan

1

GPIO를 사용할 때 주로 이전 세션에서 이미 설정된 모드 및 핀 방향 변경과 관련하여 몇 가지 문제가 발생했습니다. 예를 들어, 핀을 출력으로 설정하는 프로그램을 실행 한 다음 pi를 다시 시작하지 않고 동일한 핀을 입력으로 설정하는 프로그램을 실행하면 "RunTimeWarning :이 채널은 이미 사용하다"). 때로는 프로그램이 충돌하기 때문에 단일 프로그램에서 다양한 GPIO 관련 기능을 호출 할 때 특히 문제가됩니다.

GPIO 설정 변경 전후에 정리 명령을 사용하면 경고가 제거되고 GPIO 설정 경고가 발생하지 않고 코드가 부드럽게 실행될 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.