Comment savoir si une broche est en entrée ou en sortie

Bonsoir, comme d'après le titre, comment savoir si une broche est en entrée ou en sortie ?

J'ai fait des recherches et demandé à l'intelligence artificielle Bing, qui m'a répondu que c'était impossible, alors me voilà en train de me tourner vers vous pour résoudre ce problème.

En réalité, je souhaite remettre une broche au même état qu'avant que j'ai mise en sortie, état haut.

Il y a bien un registre DDR pour chaque port, qui est utilisé pour définir la direction d'un port.
Mais il ne saura pas te dire si la broche était en INPUT ou OUTPUT avant que tu la mette en OUTPUT.

j'ai connaissance de ce registre, mais si j'utilise un ESP32, comment je vais faire ? Ce registre est partout ?

C'est vraiment une réponse, mais ton programme ne peux pas enregistrer ça dans l'eeprom ?
Tu change souvent l'affectation de ta broche?

Forcément, mais là je ne connais pas.
Il faut chercher dans la datasheet.

Je cherche la comptabilité. Une variable suffirait.. Mais une bibliothèque modifie le sens des broches, sans que je le sache.

Les bits dans le registre DDR sont soit à 0 soit à 1 donc on peut déterminer à tout moment le sens du buffer de sortie.

Oui bien sûr, mais si la GPIO a été basculée en sortie, le bit est forcément à 1.

Dans ce cas, tu ne peux pas passer par les registres (ou alors ça va être très lourd avec du code conditionnel en fonction du processeur pour lequel tu compiles).

Il faut utiliser les fonctions haut niveau comme pinMode().

Une librairie ne devrait modifier que les I/Os qu'elle utilise. Donc si elle te change des I/Os soit c'est parce que tu utilises les mêmes quelle et c'est toi qui a mal affecté tes I/O, soit c'est une librairie codée avec les pieds et il vaudrait mieux en trouver une autre.

C'est pour mon écran tactile que je fait ça.

Les quatre broches du tactile sont sur les mêmes broches que l'écran.

Sinon il reste une autre option, c'est d'utiliser le ChipSelect de l'écran.

Mais j'aimerais au moins savoir comment résoudre le problème.

C'est marrant, j'utilisais la même expression dans mon (ex)métier.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.