Når du kjører et program i Python, hvorfor vil jeg ha oppryddingskommandoen når du bruker GPIO-ene?

Kommentarer

  • Som en sidemerknad har lednings-Pi-biblioteket som brukes med C-programmer ikke en Cleanup() -funksjon. det ser ut til at GPIO.cleanup() er tilgjengelig fordi python-funksjonaliteten fører en logg over endringene for å rydde opp i disse endringene. Se raspberrypi.stackexchange.com/questions/44807/ …

Svar

Som nevnt i denne artikkelen Grunnleggende om RPi.GPIO 3 – Hvordan avslutte GPIO-programmer rent, unngå advarsler og beskytte Pi , riktig bruk av GPIO.cleanup (),

Riktig bruk av GPIO.cleanup ()

RPi.GPIO gir en innebygd funksjon GPIO.cleanup () for å rydde opp i alt portene du har brukt. Men vær veldig tydelig hva dette gjør. Det er bare en fekter eventuelle porter du har angitt i det gjeldende programmet. Den tilbakestiller alle porter du har brukt i dette programmet, tilbake til inndatamodus. Dette forhindrer skade fra for eksempel en situasjon der du har en port satt HIGH som utgang, og du ved et uhell kobler den til GND (LOW), som vil kortslutte porten og muligens steke den. Innganger kan håndtere enten 0V (LAV) eller 3,3V (HØY), så det er tryggere å la porter være som innganger.

Håper det fjerner tvilen din.

Svar

Du trenger ikke å bruke oppryddingsmetoden.

Så vidt jeg bare vet RPi.GPIO og RPIO.GPIO Python-modulene har en oppryddingsmetode. Oppryddingsmetoden angir alle gpios du har brukt til å være innganger og deaktiverer de interne pull-ups / downs for disse gpios.

Min pigpio Python-modul har ikke en oppryddingsmetode, og heller ikke kablingen Pi2 Python-modulen så vidt jeg er klar over.

Kommentarer

  • Hva er hensikten med oppryddingskommandoen da?
  • @Human I don ' t tror det er mye av et formål, jeg ' d har lagt til en slik metode hvis jeg trodde det var nødvendig. dastaan i sitt svar har pekt på resonnementet som ble brukt av RPi.GPIO-forfatteren. Det kan være mer en filosofisk bøyning, jeg antar at brukerne har en grunn til å gjøre det de gjør eller ikke ' ikke gjør. Hvis de ønsker å legge igjen en gpio som en inngang etter at programmet er ferdig, bør de angi det som en inngang.

Svar

Jeg har opplevd noen få problemer med å bruke GPIO, hovedsakelig knyttet til å prøve å endre modus og pinretninger som allerede er angitt i en tidligere økt. For eksempel, noen ganger hvis jeg kjører et program som setter pinner til utdata, og så kjører jeg et program som setter de samme pinnene til inngang uten å starte pi på nytt, får jeg en rekke advarsler (for eksempel «RunTimeWarning: bruk»). Dette er spesielt problematisk når du ringer til forskjellige GPIO-relaterte funksjoner fra et enkelt program, da noen ganger krasjer programmet.

Ved å bruke oppryddingskommandoen enten før eller etter endring av GPIO-innstillinger, blir du kvitt advarslene og lar koden kjøre problemfritt uten at det oppstår advarsler om GPIO-innstillinger.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *