Bonjour !
Edit : j'ai trouvé la solution, voir en fin de post
Me concernant, je galère donc avec les PIN 1 et 3 (TX et RX) de l'ESP-01 sur l'Arduino IDE
Ils peuvent être définit comme GPIO de la manière suivante :
Code : Tout sélectionner
// Set rx and tx as gpio
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_GPIO3);
PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_GPIO1);
Et on est censé pouvoir les mettre à LOW/HIGH de la manière suivante :
Code : Tout sélectionner
GPIO_OUTPUT_SET(1, 1); //GPIO 1 is High
GPIO_OUTPUT_SET(1, 0); //GPIO 1 is Low
Mon problème est au niveau de la compilation, j'obtiens ceci :
Code : Tout sélectionner
HelloServer.cpp:(.text+0x388): undefined reference to `gpio_output_set(unsigned int, unsigned int, unsigned int, unsigned int)'
J'ai bien inclus "gpio.h", qui d'ailleurs contient cette fonction :
Code : Tout sélectionner
#define GPIO_OUTPUT_SET(gpio_no, bit_value) gpio_output_set(bit_value<<gpio_no, ((~bit_value)&0x01)<<gpio_no, 1<<gpio_no,0)
....
void gpio_output_set(uint32 set_mask,
uint32 clear_mask,
uint32 enable_mask,
uint32 disable_mask);
Ici on voit bien que mon programme fait passer des "unsigned int" alors que la fonction demande des uint32. J'ai donc tenté de déclarer des variables, mais ça ne change rien...
Code : Tout sélectionner
...
#include "gpio.h"
uint32 GPIO_LS_OUT = 1; //GPI01 / TX
uint32 GPIO_LS_IN = 3; //GPI03 / RX
uint32 LS_LOW = 0;
uint32 LS_HIGH = 1;
GPIO_OUTPUT_SET(GPIO_LS_OUT, LS_HIGH); // GPIO 1 is High
Voilà, si quelqu'un a une idée. J'ai beau jouer avec les type de variables, je coince...
Bonne journée
-------
Edit :
bon finalement j'ai trouvé une solution à mon problème de compilation
Après avoir lu ce sujet, et nottament le dernier post :
http://www.esp8266.com/viewtopic.php?f=9&t=478&start=20 , je me suis renseigné sur le mot-clé "extern" en C
Et je suis en autre tombé sur ce site :
http://en.cppreference.com/w/cpp/langua ... ge_linkage
En gros, j'ai un programme C++, mais la fonction GPIO_OUTPUT_SET est déclaré en C.
Il faut donc faire le lien entre les deux de la manière suivante :
Et là, ça compile.
A tester maintenant sur mon module
