Outils pour utilisateurs

Outils du site


start:arduino:esp32:i2c_spi:multiple

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
start:arduino:esp32:i2c_spi:multiple [2022/11/01 07:13] gerardadminstart:arduino:esp32:i2c_spi:multiple [2023/01/27 16:08] (Version actuelle) – modification externe 127.0.0.1
Ligne 9: Ligne 9:
 En bref, pour utiliser HSPI et VSPI simultanément, il vous suffit de le faire. En bref, pour utiliser HSPI et VSPI simultanément, il vous suffit de le faire.
  
-1) Tout d’abord, assurez-vous d’inclure la bibliothèque SPI dans votre code.+1) Tout d’abord, assurez-vous d’inclure la [[https://github.com/espressif/arduino-esp32/archive/refs/heads/master.zip|Bibliothèque SPI arduino-esp32]] dans votre code.
  
     #include <SPI.h>     #include <SPI.h>
Ligne 35: Ligne 35:
 Ensuite, utilisez les commandes habituelles pour interagir avec les appareils SPI, que vous utilisiez une bibliothèque de capteurs ou les méthodes de la bibliothèque SPI. Ensuite, utilisez les commandes habituelles pour interagir avec les appareils SPI, que vous utilisiez une bibliothèque de capteurs ou les méthodes de la bibliothèque SPI.
  
-Vous pouvez trouver un exemple d’utilisation de plusieurs bus SPI sur le Bibliothèque SPI arduino-esp32. Voir l’exemple ci-dessous :+Vous pouvez trouver un exemple d’utilisation de plusieurs bus SPI sur la [[https://github.com/espressif/arduino-esp32/archive/refs/heads/master.zip|Bibliothèque SPI arduino-esp32]]. Voir l’exemple ci-dessous :
  
  
 <code c exemple_Multiple_SPI_ESP32.ino> <code c exemple_Multiple_SPI_ESP32.ino>
  
-/* L'ESP32 dispose de quatre bus SPi, mais pour le moment, seuls deux d'entre eux + 
- ils sont disponibles à utiliser, HSPI et VSPI. Simplement en utilisant l'API SPI + 
- comme illustré dans les exemples Arduino utilisera VSPI, laissant HSPI inutilisé+/* The ESP32 has four SPi buseshowever as of right now only two of 
- * + them are available to use, HSPI and VSPI. Simply using the SPI API  
- Cependant, si nous initialisons simplement deux instances de la classe SPI pour les deux + as illustrated in Arduino examples will use VSPI, leaving HSPI unused
- de ces bus, les deux peuvent être utilisésCependant, lorsque vous les utilisez simplement, l'Arduino + *  
- * way only sera effectivement sorti à la fois+ However if we simply intialise two instance of the SPI class for both 
- * + of these buses both can be usedHowever when just using these the Arduino 
- La capture de l'analyseur logique se trouve dans le même dossier que cet exemple+ * way only will actually be outputting at a time
 + *  
 + Logic analyser capture is in the same folder as this example as
  * "multiple_bus_output.png"  * "multiple_bus_output.png"
- * + *  
- créé le 30/04/2018 par Alistair Symonds+ created 30/04/2018 by Alistair Symonds
  */  */
-#comprendre +#include <SPI.h>
-    +
  
-// Définir ALTERNATE_PINS pour utiliser des broches GPIO non standard pour le bus SPI+// Define ALTERNATE_PINS to use non-standard GPIO pins for SPI bus
  
 #ifdef ALTERNATE_PINS #ifdef ALTERNATE_PINS
-  #define VSPI_MISO 2 +  #define VSPI_MISO   
-  #define VSPI_MOSI 4 +  #define VSPI_MOSI   
-  #define VSPI_SCLK 0 +  #define VSPI_SCLK   
-  #define VSPI_SS 33+  #define VSPI_SS     33
  
-  #define HSPI_MISO 26 +  #define HSPI_MISO   26 
-  #define HSPI_MOSI 27 +  #define HSPI_MOSI   27 
-  #define HSPI_SCLK 25 +  #define HSPI_SCLK   25 
-  #define HSPI_SS 32 +  #define HSPI_SS     32 
-#autre +#else 
-  #define VSPI_MISO MISO +  #define VSPI_MISO   MISO 
-  #define VSPI_MOSI MOSI +  #define VSPI_MOSI   MOSI 
-  #define VSPI_SCLK SCK +  #define VSPI_SCLK   SCK 
-  #define VSPI_SS SS+  #define VSPI_SS     SS
  
-  #define HSPI_MISO 12 +  #define HSPI_MISO   12 
-  #define HSPI_MOSI 13 +  #define HSPI_MOSI   13 
-  #define HSPI_SCLK 14 +  #define HSPI_SCLK   14 
-  #define HSPI_SS 15 +  #define HSPI_SS     15 
-#fin si+#endif
  
-#si CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 +#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 
-#définir VSPI FSPI +#define VSPI FSPI 
-#fin si+#endif
  
-statique const int spiClk = 1000000 ; // 1MHz+static const int spiClk = 1000000; // 1 MHz
  
-//pointeurs non initialisés vers des objets SPI +//uninitalised pointers to SPI objects 
-SPIClass * vspi = NULL ; +SPIClass * vspi = NULL; 
-SPIClass * hspi = NULL ;+SPIClass * hspi = NULL;
  
 void setup() { void setup() {
-  //initialise deux instances de la SPIClass attachées respectivement à VSPI et HSPI +  //initialise two instances of the SPIClass attached to VSPI and HSPI respectively 
-  vspi = nouvelle SPIClass(VSPI); +  vspi = new SPIClass(VSPI); 
-  hspi = nouvelle SPIClass(HSPI);+  hspi = new SPIClass(HSPI);
      
-  //horloge miso mosi ss+  //clock miso mosi ss
  
 #ifndef ALTERNATE_PINS #ifndef ALTERNATE_PINS
-  //initialise vspi avec les broches par défaut+  //initialise vspi with default pins
   //SCLK = 18, MISO = 19, MOSI = 23, SS = 5   //SCLK = 18, MISO = 19, MOSI = 23, SS = 5
   vspi->begin();   vspi->begin();
-#autre +#else 
-  //routez alternativement à travers les broches GPIO de votre choix+  //alternatively route through GPIO pins of your choice
   vspi->begin(VSPI_SCLK, VSPI_MISO, VSPI_MOSI, VSPI_SS); //SCLK, MISO, MOSI, SS   vspi->begin(VSPI_SCLK, VSPI_MISO, VSPI_MOSI, VSPI_SS); //SCLK, MISO, MOSI, SS
-#fin si+#endif
  
 #ifndef ALTERNATE_PINS #ifndef ALTERNATE_PINS
-  //initialise hspi avec les broches par défaut+  //initialise hspi with default pins
   //SCLK = 14, MISO = 12, MOSI = 13, SS = 15   //SCLK = 14, MISO = 12, MOSI = 13, SS = 15
   hspi->begin();   hspi->begin();
-#autre +#else 
-  // alternativement route via les broches GPIO+  //alternatively route through GPIO pins
   hspi->begin(HSPI_SCLK, HSPI_MISO, HSPI_MOSI, HSPI_SS); //SCLK, MISO, MOSI, SS   hspi->begin(HSPI_SCLK, HSPI_MISO, HSPI_MOSI, HSPI_SS); //SCLK, MISO, MOSI, SS
-#fin si+#endif
  
-  // configurer les broches de sélection esclave en tant que sorties en tant qu'API Arduino +  //set up slave select pins as outputs as the Arduino API 
-  // ne gère pas automatiquement l'abaissement du SS +  //doesn't handle automatically pulling SS low 
-  pinMode(vspi->pinSS(), SORTIE); //VSPISS +  pinMode(vspi->pinSS(), OUTPUT); //VSPI SS 
-  pinMode(hspi->pinSS(), SORTIE); //HSPISS+  pinMode(hspi->pinSS(), OUTPUT); //HSPI SS
  
 } }
  
-// la fonction de boucle s'exécute encore et encore jusqu'à la mise hors tension ou la réinitialisation +// the loop function runs over and over again until power down or reset 
-boucle vide() { +void loop() { 
-  //utiliser les bus SPI +  //use the SPI buses 
-  spiCommand(vspi, 0b01010101); // données indésirables pour illustrer l'utilisation+  spiCommand(vspi, 0b01010101); // junk data to illustrate usage
   spiCommand(hspi, 0b11001100);   spiCommand(hspi, 0b11001100);
-  retard(100);+  delay(100);
 } }
  
 void spiCommand(SPIClass *spi, byte data) { void spiCommand(SPIClass *spi, byte data) {
-  // utilisez-le comme vous le feriez avec l'API SPI arduino habituelle+  //use it as you would the regular arduino SPI API
   spi->beginTransaction(SPISettings(spiClk, MSBFIRST, SPI_MODE0));   spi->beginTransaction(SPISettings(spiClk, MSBFIRST, SPI_MODE0));
-  digitalWrite(spi->pinSS(), LOW); // tirez SS lentement pour préparer l'autre extrémité pour le transfert +  digitalWrite(spi->pinSS(), LOW); //pull SS slow to prep other end for transfer 
-  spi->transfert(données); +  spi->transfer(data); 
-  digitalWrite(spi->pinSS(), HIGH); // tirez ss vers le haut pour signifier la fin du transfert de données+  digitalWrite(spi->pinSS(), HIGH); //pull ss high to signify end of data transfer
   spi->endTransaction();   spi->endTransaction();
 } }
 +
 </code> </code>
        
  
  
/home/chanteri/www/fablab37110/data/attic/start/arduino/esp32/i2c_spi/multiple.1667283239.txt.gz · Dernière modification : 2023/01/27 16:08 (modification externe)