diff --git a/Logiciel/Firmware_testeur/Drivers/rj45.c b/Logiciel/Firmware_testeur/Drivers/rj45.c
index 0a34234e09e03c6dd1b7eb6c89c53431b3e64af9..7102c708d962e7b5cc2c444a4d0eef3a778d35ff 100644
--- a/Logiciel/Firmware_testeur/Drivers/rj45.c
+++ b/Logiciel/Firmware_testeur/Drivers/rj45.c
@@ -9,97 +9,25 @@
 
 // Fonctions publiques
 void RJ45_Entree_init               (RJ45_Entree* connecteur,
-RJ45_Entree_lireBroche_ptr lireBroche1, RJ45_Entree_lireBroche_ptr lireBroche2,
-RJ45_Entree_lireBroche_ptr lireBroche3, RJ45_Entree_lireBroche_ptr lireBroche4,
-RJ45_Entree_lireBroche_ptr lireBroche5, RJ45_Entree_lireBroche_ptr lireBroche6,
-RJ45_Entree_lireBroche_ptr lireBroche7, RJ45_Entree_lireBroche_ptr lireBroche8) {
-        connecteur->base_        = connecteur;
-        connecteur->lireBroche1_ = lireBroche1;
-        connecteur->lireBroche2_ = lireBroche2;
-        connecteur->lireBroche3_ = lireBroche3;
-        connecteur->lireBroche4_ = lireBroche4;
-        connecteur->lireBroche5_ = lireBroche5;
-        connecteur->lireBroche6_ = lireBroche6;
-        connecteur->lireBroche7_ = lireBroche7;
-        connecteur->lireBroche8_ = lireBroche8;
+                                     RJ45_Entree_lireBroche_ptr lireBroche) {
+        connecteur->lireBroche_ = lireBroche;
 }
 
-RJ45_Etat RJ45_Entree_lireBroche1   (RJ45_Entree* connecteur) {
-        return connecteur->lireBroche1_(connecteur);
+RJ45_Etat RJ45_Entree_lireBroche    (RJ45_Entree* connecteur, int numeroBroche) {
+        return connecteur->lireBroche_(connecteur, numeroBroche);
 }
-RJ45_Etat RJ45_Entree_lireBroche2   (RJ45_Entree* connecteur) {
-        return connecteur->lireBroche2_(connecteur);
-}
-RJ45_Etat RJ45_Entree_lireBroche3   (RJ45_Entree* connecteur) {
-        return connecteur->lireBroche3_(connecteur);
-}
-
-RJ45_Etat RJ45_Entree_lireBroche4   (RJ45_Entree* connecteur) {
-        return connecteur->lireBroche4_(connecteur);
-}
-
-RJ45_Etat RJ45_Entree_lireBroche5   (RJ45_Entree* connecteur) {
-        return connecteur->lireBroche5_(connecteur);
-}
-
-RJ45_Etat RJ45_Entree_lireBroche6   (RJ45_Entree* connecteur) {
-        return connecteur->lireBroche6_(connecteur);
-}
-
-RJ45_Etat RJ45_Entree_lireBroche7   (RJ45_Entree* connecteur) {
-        return connecteur->lireBroche7_(connecteur);
-}
-
-RJ45_Etat RJ45_Entree_lireBroche8   (RJ45_Entree* connecteur) {
-        return connecteur->lireBroche8_(connecteur);
-}
-
 
 void RJ45_Sortie_init               (RJ45_Sortie* connecteur,
-RJ45_Sortie_ecrireBroche_ptr ecrireBroche1, RJ45_Sortie_ecrireBroche_ptr ecrireBroche2,
-RJ45_Sortie_ecrireBroche_ptr ecrireBroche3, RJ45_Sortie_ecrireBroche_ptr ecrireBroche4,
-RJ45_Sortie_ecrireBroche_ptr ecrireBroche5, RJ45_Sortie_ecrireBroche_ptr ecrireBroche6,
-RJ45_Sortie_ecrireBroche_ptr ecrireBroche7, RJ45_Sortie_ecrireBroche_ptr ecrireBroche8) {
-        connecteur->base_          = connecteur;
-        connecteur->ecrireBroche1_ = ecrireBroche1;
-        connecteur->ecrireBroche2_ = ecrireBroche2;
-        connecteur->ecrireBroche3_ = ecrireBroche3;
-        connecteur->ecrireBroche4_ = ecrireBroche4;
-        connecteur->ecrireBroche5_ = ecrireBroche5;
-        connecteur->ecrireBroche6_ = ecrireBroche6;
-        connecteur->ecrireBroche7_ = ecrireBroche7;
-        connecteur->ecrireBroche8_ = ecrireBroche8;
+                                     RJ45_Sortie_ecrireBroche_ptr ecrireBroche) {
+        connecteur->ecrireBroche_ = ecrireBroche;
 }
 
-void RJ45_Sortie_ecrireBroche1      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) {
-        connecteur->ecrireBroche1_(connecteur, niveauLogique);
+void RJ45_Sortie_ecrireBroche       (RJ45_Sortie* connecteur, int numeroBroche, RJ45_Etat niveauLogique) {
+        connecteur->ecrireBroche_(connecteur, numeroBroche, niveauLogique);
 }
 
-void RJ45_Sortie_ecrireBroche2      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) {
-        connecteur->ecrireBroche2_(connecteur, niveauLogique);
+void RJ45_Sortie_ecrireToutesBroches(RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) {
+        for (int i=0; i<RJ45_N_BROCHES; i++) {
+                connecteur->ecrireBroche_(connecteur, i, niveauLogique);
+        }
 }
-
-void RJ45_Sortie_ecrireBroche3      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) {
-        connecteur->ecrireBroche3_(connecteur, niveauLogique);
-}
-
-void RJ45_Sortie_ecrireBroche4      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) {
-        connecteur->ecrireBroche4_(connecteur, niveauLogique);
-}
-
-void RJ45_Sortie_ecrireBroche5      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) {
-        connecteur->ecrireBroche5_(connecteur, niveauLogique);
-}
-
-void RJ45_Sortie_ecrireBroche6      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) {
-        connecteur->ecrireBroche6_(connecteur, niveauLogique);
-}
-
-void RJ45_Sortie_ecrireBroche7      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) {
-        connecteur->ecrireBroche7_(connecteur, niveauLogique);
-}
-
-void RJ45_Sortie_ecrireBroche8      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique) {
-        connecteur->ecrireBroche8_(connecteur, niveauLogique);
-}
-
diff --git a/Logiciel/Firmware_testeur/Drivers/rj45.h b/Logiciel/Firmware_testeur/Drivers/rj45.h
index 89340d9cf558c6536dd4b0decf23d86759a540a2..1a2acce4d03b1e555014eafdd0bbaf85bf617db6 100644
--- a/Logiciel/Firmware_testeur/Drivers/rj45.h
+++ b/Logiciel/Firmware_testeur/Drivers/rj45.h
@@ -8,6 +8,17 @@
 #ifndef RJ45_H_
 #define RJ45_H_
 
+// Constantes
+#define RJ45_N_BROCHES 8
+#define RJ45_BR_1   0
+#define RJ45_BR_2   1
+#define RJ45_BR_3   2
+#define RJ45_BR_4   3
+#define RJ45_BR_5   4
+#define RJ45_BR_6   5
+#define RJ45_BR_7   6
+#define RJ45_BR_8   7
+
 // États logiques
 typedef enum {
         RJ45_BAS    = 0,
@@ -16,63 +27,26 @@ typedef enum {
 } RJ45_Etat;
 
 // Pointeurs de fonctions abstraites
-typedef RJ45_Etat   (*RJ45_Entree_lireBroche_ptr)   (void*);
-typedef void        (*RJ45_Sortie_ecrireBroche_ptr) (void*, RJ45_Etat niveauLogique);
+typedef RJ45_Etat   (*RJ45_Entree_lireBroche_ptr  ) (void*, int numeroBroche);
+typedef void        (*RJ45_Sortie_ecrireBroche_ptr) (void*, int numeroBroche, RJ45_Etat niveauLogique);
 
 // Structures
 typedef struct {
-        void*                        base_;
-        RJ45_Entree_lireBroche_ptr   lireBroche1_;
-        RJ45_Entree_lireBroche_ptr   lireBroche2_;
-        RJ45_Entree_lireBroche_ptr   lireBroche3_;
-        RJ45_Entree_lireBroche_ptr   lireBroche4_;
-        RJ45_Entree_lireBroche_ptr   lireBroche5_;
-        RJ45_Entree_lireBroche_ptr   lireBroche6_;
-        RJ45_Entree_lireBroche_ptr   lireBroche7_;
-        RJ45_Entree_lireBroche_ptr   lireBroche8_;
+        RJ45_Entree_lireBroche_ptr  lireBroche_;
 } RJ45_Entree;
 
 typedef struct {
-        void*                        base_;
-        RJ45_Sortie_ecrireBroche_ptr ecrireBroche1_;
-        RJ45_Sortie_ecrireBroche_ptr ecrireBroche2_;
-        RJ45_Sortie_ecrireBroche_ptr ecrireBroche3_;
-        RJ45_Sortie_ecrireBroche_ptr ecrireBroche4_;
-        RJ45_Sortie_ecrireBroche_ptr ecrireBroche5_;
-        RJ45_Sortie_ecrireBroche_ptr ecrireBroche6_;
-        RJ45_Sortie_ecrireBroche_ptr ecrireBroche7_;
-        RJ45_Sortie_ecrireBroche_ptr ecrireBroche8_;
+        RJ45_Sortie_ecrireBroche_ptr ecrireBroche_;
 } RJ45_Sortie;
 
 // Fonctions publiques
 void RJ45_Entree_init               (RJ45_Entree* connecteur,
-                RJ45_Entree_lireBroche_ptr lireBroche1, RJ45_Entree_lireBroche_ptr lireBroche2,
-                RJ45_Entree_lireBroche_ptr lireBroche3, RJ45_Entree_lireBroche_ptr lireBroche4,
-                RJ45_Entree_lireBroche_ptr lireBroche5, RJ45_Entree_lireBroche_ptr lireBroche6,
-                RJ45_Entree_lireBroche_ptr lireBroche7, RJ45_Entree_lireBroche_ptr lireBroche8);
-
-RJ45_Etat RJ45_Entree_lireBroche1   (RJ45_Entree* connecteur);
-RJ45_Etat RJ45_Entree_lireBroche2   (RJ45_Entree* connecteur);
-RJ45_Etat RJ45_Entree_lireBroche3   (RJ45_Entree* connecteur);
-RJ45_Etat RJ45_Entree_lireBroche4   (RJ45_Entree* connecteur);
-RJ45_Etat RJ45_Entree_lireBroche5   (RJ45_Entree* connecteur);
-RJ45_Etat RJ45_Entree_lireBroche6   (RJ45_Entree* connecteur);
-RJ45_Etat RJ45_Entree_lireBroche7   (RJ45_Entree* connecteur);
-RJ45_Etat RJ45_Entree_lireBroche8   (RJ45_Entree* connecteur);
+                                     RJ45_Entree_lireBroche_ptr lireBroche);
+RJ45_Etat RJ45_Entree_lireBroche    (RJ45_Entree* connecteur, int numeroBroche);
 
 void RJ45_Sortie_init               (RJ45_Sortie* connecteur,
-                RJ45_Sortie_ecrireBroche_ptr ecrireBroche1, RJ45_Sortie_ecrireBroche_ptr ecrireBroche2,
-                RJ45_Sortie_ecrireBroche_ptr ecrireBroche3, RJ45_Sortie_ecrireBroche_ptr ecrireBroche4,
-                RJ45_Sortie_ecrireBroche_ptr ecrireBroche5, RJ45_Sortie_ecrireBroche_ptr ecrireBroche6,
-                RJ45_Sortie_ecrireBroche_ptr ecrireBroche7, RJ45_Sortie_ecrireBroche_ptr ecrireBroche8);
-
-void RJ45_Sortie_ecrireBroche1      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique);
-void RJ45_Sortie_ecrireBroche2      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique);
-void RJ45_Sortie_ecrireBroche3      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique);
-void RJ45_Sortie_ecrireBroche4      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique);
-void RJ45_Sortie_ecrireBroche5      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique);
-void RJ45_Sortie_ecrireBroche6      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique);
-void RJ45_Sortie_ecrireBroche7      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique);
-void RJ45_Sortie_ecrireBroche8      (RJ45_Sortie* connecteur, RJ45_Etat niveauLogique);
+                                     RJ45_Sortie_ecrireBroche_ptr ecrireBroche);
+void RJ45_Sortie_ecrireBroche       (RJ45_Sortie* connecteur, int numeroBroche, RJ45_Etat niveauLogique);
+void RJ45_Sortie_ecrireToutesBroches(RJ45_Sortie* connecteur, RJ45_Etat niveauLogique);
 
 #endif /* RJ45_H_ */
diff --git a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c
index 48e9e31d6cfdf55c22638fd8c14e598ea9179582..9a82a209fa8573bfe03cf8c5f94febad8619e40b 100644
--- a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c
+++ b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.c
@@ -6,7 +6,7 @@
  */
 
 #include "rj45_port_stm32f071v8.h"
-#include "main.h"
+#include <string.h>
 
 // Fonctions privées
 RJ45_Etat convertirGPIO_PinState       (GPIO_PinState etatBroche) {
@@ -33,87 +33,33 @@ GPIO_PinState convertirRJ45_Etat       (RJ45_Etat niveauLogique) {
 
 
 // Fonctions publiques
-void RJ45_Entree_Port_init                  (RJ45_Entree_Port* connecteur) {
-        RJ45_Entree base[1];
-        RJ45_Entree_init(base, (void*) RJ45_Entree_Port_lireBroche1,
-                        (void*) RJ45_Entree_Port_lireBroche2,
-                        (void*) RJ45_Entree_Port_lireBroche3,
-                        (void*) RJ45_Entree_Port_lireBroche4,
-                        (void*) RJ45_Entree_Port_lireBroche5,
-                        (void*) RJ45_Entree_Port_lireBroche6,
-                        (void*) RJ45_Entree_Port_lireBroche7,
-                        (void*) RJ45_Entree_Port_lireBroche8);
-}
-
-RJ45_Etat RJ45_Entree_Port_lireBroche1      (RJ45_Entree_Port* connecteur) {
-        return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_1_GPIO_Port, ETHB_1_Pin) );
-}
+void RJ45_Entree_Port_init                  (RJ45_Entree_Port* connecteur,
+                                             GPIO_TypeDef** ports, uint16_t* broches) {
+        RJ45_Entree_init(&(connecteur->base_), (void*) RJ45_Entree_Port_lireBroche);
 
-RJ45_Etat RJ45_Entree_Port_lireBroche2      (RJ45_Entree_Port* connecteur) {
-        return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_2_GPIO_Port, ETHB_2_Pin) );
-}
-RJ45_Etat RJ45_Entree_Port_lireBroche3      (RJ45_Entree_Port* connecteur) {
-        return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_3_GPIO_Port, ETHB_3_Pin) );
+        memcpy(connecteur->ports_, ports, RJ45_N_BROCHES*sizeof(*ports));
+        memcpy(connecteur->broches_, broches, RJ45_N_BROCHES*sizeof(*broches));
 }
 
-RJ45_Etat RJ45_Entree_Port_lireBroche4      (RJ45_Entree_Port* connecteur) {
-        return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_4_GPIO_Port, ETHB_4_Pin) );
-}
-RJ45_Etat RJ45_Entree_Port_lireBroche5      (RJ45_Entree_Port* connecteur) {
-        return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_5_GPIO_Port, ETHB_5_Pin) );
+RJ45_Etat RJ45_Entree_Port_lireBroche       (RJ45_Entree_Port* connecteur, int numeroBroche) {
+        return convertirGPIO_PinState( HAL_GPIO_ReadPin(connecteur->ports_[numeroBroche],
+                                       connecteur->broches_[numeroBroche]) );
 }
 
-RJ45_Etat RJ45_Entree_Port_lireBroche6      (RJ45_Entree_Port* connecteur) {
-        return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_6_GPIO_Port, ETHB_6_Pin) );
-}
-RJ45_Etat RJ45_Entree_Port_lireBroche7      (RJ45_Entree_Port* connecteur) {
-        return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_7_GPIO_Port, ETHB_7_Pin) );
-}
-
-RJ45_Etat RJ45_Entree_Port_lireBroche8      (RJ45_Entree_Port* connecteur) {
-        return convertirGPIO_PinState( HAL_GPIO_ReadPin(ETHB_8_GPIO_Port, ETHB_8_Pin) );
-}
-
-void RJ45_Sortie_Port_init                  (RJ45_Sortie_Port* connecteur) {
-        RJ45_Sortie base[1];
-        RJ45_Sortie_init(base, (void*) RJ45_Sortie_Port_ecrireBroche1,
-                        (void*) RJ45_Sortie_Port_ecrireBroche2,
-                        (void*) RJ45_Sortie_Port_ecrireBroche3,
-                        (void*) RJ45_Sortie_Port_ecrireBroche4,
-                        (void*) RJ45_Sortie_Port_ecrireBroche5,
-                        (void*) RJ45_Sortie_Port_ecrireBroche6,
-                        (void*) RJ45_Sortie_Port_ecrireBroche7,
-                        (void*) RJ45_Sortie_Port_ecrireBroche8);
-}
-
-void RJ45_Sortie_Port_ecrireBroche1         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) {
-        HAL_GPIO_WritePin(ETHA_1_GPIO_Port, ETHA_1_Pin, convertirRJ45_Etat(niveauLogique));
-}
-
-void RJ45_Sortie_Port_ecrireBroche2         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) {
-        HAL_GPIO_WritePin(ETHA_2_GPIO_Port, ETHA_2_Pin, convertirRJ45_Etat(niveauLogique));
-}
-
-void RJ45_Sortie_Port_ecrireBroche3         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) {
-        HAL_GPIO_WritePin(ETHA_3_GPIO_Port, ETHA_3_Pin, convertirRJ45_Etat(niveauLogique));
-}
-
-void RJ45_Sortie_Port_ecrireBroche4         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) {
-        HAL_GPIO_WritePin(ETHA_4_GPIO_Port, ETHA_4_Pin, convertirRJ45_Etat(niveauLogique));
-}
-
-void RJ45_Sortie_Port_ecrireBroche5         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) {
-        HAL_GPIO_WritePin(ETHA_5_GPIO_Port, ETHA_5_Pin, convertirRJ45_Etat(niveauLogique));
-}
+void RJ45_Sortie_Port_init                  (RJ45_Sortie_Port* connecteur,
+                                             GPIO_TypeDef** ports, uint16_t* broches) {
+        RJ45_Sortie_init(&(connecteur->base_), (void*) RJ45_Sortie_Port_ecrireBroche);
 
-void RJ45_Sortie_Port_ecrireBroche6         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) {
-        HAL_GPIO_WritePin(ETHA_6_GPIO_Port, ETHA_6_Pin, convertirRJ45_Etat(niveauLogique));
+        memcpy(connecteur->ports_, ports, RJ45_N_BROCHES*sizeof(*ports));
+        memcpy(connecteur->broches_, broches, RJ45_N_BROCHES*sizeof(*broches));
 }
 
-void RJ45_Sortie_Port_ecrireBroche7         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) {
-        HAL_GPIO_WritePin(ETHA_7_GPIO_Port, ETHA_7_Pin, convertirRJ45_Etat(niveauLogique));
+void RJ45_Sortie_Port_ecrireBroche          (RJ45_Sortie_Port* connecteur, int numeroBroche,
+                                             RJ45_Etat niveauLogique) {
+        HAL_GPIO_WritePin(connecteur->ports_[numeroBroche], connecteur->broches_[numeroBroche],
+                          convertirRJ45_Etat(niveauLogique));
 }
 
-void RJ45_Sortie_Port_ecrireBroche8         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) {
-        HAL_GPIO_WritePin(ETHA_8_GPIO_Port, ETHA_8_Pin, convertirRJ45_Etat(niveauLogique));
+void RJ45_Sortie_Port_ecrireToutesBroches   (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique) {
+        RJ45_Sortie_ecrireToutesBroches(&(connecteur->base_), niveauLogique);
 }
diff --git a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h
index 3be9a2202dad0de51d3f45711e75a3ec97117ccf..bdb7c69489191a08589524b9c367743770c8ecf0 100644
--- a/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h
+++ b/Logiciel/Firmware_testeur/Drivers/rj45_port_stm32f071v8.h
@@ -9,37 +9,30 @@
 #define RJ45_PORT_STM32F071V8_H_
 
 #include "rj45.h"
+#include "main.h"
 
 // Structures
 typedef struct {
-        RJ45_Entree* base_;
+        RJ45_Entree     base_;
+        GPIO_TypeDef*   ports_  [RJ45_N_BROCHES];
+        uint16_t        broches_[RJ45_N_BROCHES];
 } RJ45_Entree_Port;
 
 typedef struct {
-        RJ45_Sortie* base_;
+        RJ45_Sortie     base_;
+        GPIO_TypeDef*   ports_  [RJ45_N_BROCHES];
+        uint16_t        broches_[RJ45_N_BROCHES];
 } RJ45_Sortie_Port;
 
 // Fonctions publiques
-void RJ45_Entree_Port_init                  (RJ45_Entree_Port* connecteur);
-
-RJ45_Etat RJ45_Entree_Port_lireBroche1      (RJ45_Entree_Port* connecteur);
-RJ45_Etat RJ45_Entree_Port_lireBroche2      (RJ45_Entree_Port* connecteur);
-RJ45_Etat RJ45_Entree_Port_lireBroche3      (RJ45_Entree_Port* connecteur);
-RJ45_Etat RJ45_Entree_Port_lireBroche4      (RJ45_Entree_Port* connecteur);
-RJ45_Etat RJ45_Entree_Port_lireBroche5      (RJ45_Entree_Port* connecteur);
-RJ45_Etat RJ45_Entree_Port_lireBroche6      (RJ45_Entree_Port* connecteur);
-RJ45_Etat RJ45_Entree_Port_lireBroche7      (RJ45_Entree_Port* connecteur);
-RJ45_Etat RJ45_Entree_Port_lireBroche8      (RJ45_Entree_Port* connecteur);
-
-void RJ45_Sortie_Port_init                  (RJ45_Sortie_Port* connecteur);
-
-void RJ45_Sortie_Port_ecrireBroche1         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique);
-void RJ45_Sortie_Port_ecrireBroche2         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique);
-void RJ45_Sortie_Port_ecrireBroche3         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique);
-void RJ45_Sortie_Port_ecrireBroche4         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique);
-void RJ45_Sortie_Port_ecrireBroche5         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique);
-void RJ45_Sortie_Port_ecrireBroche6         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique);
-void RJ45_Sortie_Port_ecrireBroche7         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique);
-void RJ45_Sortie_Port_ecrireBroche8         (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique);
+void RJ45_Entree_Port_init                  (RJ45_Entree_Port* connecteur,
+                                             GPIO_TypeDef** ports, uint16_t* broches);
+RJ45_Etat RJ45_Entree_Port_lireBroche       (RJ45_Entree_Port* connecteur, int numeroBroche);
+
+void RJ45_Sortie_Port_init                  (RJ45_Sortie_Port* connecteur,
+                                             GPIO_TypeDef** ports, uint16_t* broches);
+void RJ45_Sortie_Port_ecrireBroche          (RJ45_Sortie_Port* connecteur, int numeroBroche,
+                                             RJ45_Etat niveauLogique);
+void RJ45_Sortie_Port_ecrireToutesBroches   (RJ45_Sortie_Port* connecteur, RJ45_Etat niveauLogique);
 
 #endif /* RJ45_PORT_STM32F071V8_H_ */