start:arduino:esp32:i2c_spi:multiple
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
start:arduino:esp32:i2c_spi:multiple [2022/11/01 07:13] – gerardadmin | start: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, | En bref, pour utiliser HSPI et VSPI simultanément, | ||
- | 1) Tout d’abord, assurez-vous d’inclure la bibliothèque | + | 1) Tout d’abord, assurez-vous d’inclure la [[https:// |
#include < | #include < | ||
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:// |
<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' | + | |
- | | + | |
- | | + | /* The ESP32 has four SPi buses, however as of right now only two of |
- | * | + | |
- | | + | |
- | | + | * |
- | * way only sera effectivement sorti à la fois. | + | |
- | * | + | |
- | | + | * way only will actually be outputting at a time. |
+ | * | ||
+ | | ||
* " | * " | ||
- | * | + | * |
- | | + | |
*/ | */ | ||
- | #comprendre | + | #include < |
- | | + | |
- | // Définir | + | // Define |
#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 |
- | #define HSPI_MISO 26 | + | #define HSPI_MISO |
- | #define HSPI_MOSI 27 | + | #define HSPI_MOSI |
- | #define HSPI_SCLK 25 | + | #define HSPI_SCLK |
- | #define HSPI_SS 32 | + | #define HSPI_SS |
- | #autre | + | #else |
- | #define VSPI_MISO MISO | + | #define VSPI_MISO |
- | #define VSPI_MOSI MOSI | + | #define VSPI_MOSI |
- | #define VSPI_SCLK SCK | + | #define VSPI_SCLK |
- | #define VSPI_SS SS | + | #define VSPI_SS |
- | #define HSPI_MISO 12 | + | #define HSPI_MISO |
- | #define HSPI_MOSI 13 | + | #define HSPI_MOSI |
- | #define HSPI_SCLK 14 | + | #define HSPI_SCLK |
- | #define HSPI_SS 15 | + | #define HSPI_SS |
- | #fin si | + | #endif |
- | #si CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 | + | #if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3 |
- | #définir | + | #define |
- | #fin si | + | #endif |
- | statique | + | static |
- | //pointeurs non initialisés vers des objets | + | //uninitalised pointers to SPI objects |
- | SPIClass * vspi = NULL ; | + | SPIClass * vspi = NULL; |
- | SPIClass * hspi = NULL ; | + | SPIClass * hspi = NULL; |
void setup() { | void setup() { | ||
- | // | + | // |
- | vspi = nouvelle | + | vspi = new SPIClass(VSPI); |
- | hspi = nouvelle | + | hspi = new SPIClass(HSPI); |
| | ||
- | //horloge | + | //clock miso mosi ss |
#ifndef ALTERNATE_PINS | #ifndef ALTERNATE_PINS | ||
- | // | + | // |
//SCLK = 18, MISO = 19, MOSI = 23, SS = 5 | //SCLK = 18, MISO = 19, MOSI = 23, SS = 5 | ||
vspi-> | vspi-> | ||
- | #autre | + | #else |
- | //routez alternativement à travers les broches | + | //alternatively route through |
vspi-> | vspi-> | ||
- | #fin si | + | #endif |
#ifndef ALTERNATE_PINS | #ifndef ALTERNATE_PINS | ||
- | // | + | // |
//SCLK = 14, MISO = 12, MOSI = 13, SS = 15 | //SCLK = 14, MISO = 12, MOSI = 13, SS = 15 | ||
hspi-> | hspi-> | ||
- | #autre | + | #else |
- | // alternativement | + | //alternatively |
hspi-> | hspi-> | ||
- | #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 |
- | // ne gère pas automatiquement l'abaissement du SS | + | //doesn't handle automatically pulling |
- | pinMode(vspi-> | + | pinMode(vspi-> |
- | pinMode(hspi-> | + | pinMode(hspi-> |
} | } | ||
- | // la fonction de boucle s' | + | // 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, | + | spiCommand(vspi, |
spiCommand(hspi, | spiCommand(hspi, | ||
- | | + | |
} | } | ||
void spiCommand(SPIClass *spi, byte data) { | void spiCommand(SPIClass *spi, byte data) { | ||
- | // utilisez-le comme vous le feriez avec l'API SPI arduino | + | //use it as you would the regular |
spi-> | spi-> | ||
- | digitalWrite(spi-> | + | digitalWrite(spi-> |
- | spi->transfert(données); | + | spi->transfer(data); |
- | digitalWrite(spi-> | + | digitalWrite(spi-> |
spi-> | spi-> | ||
} | } | ||
+ | |||
</ | </ | ||
/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)