8000 Cleanup SPI_Multiple_Buses (#3527) · beegee-tokyo/arduino-esp32@579e04b · GitHub
[go: up one dir, main page]

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 579e04b

Browse files
muman613me-no-dev
authored andcommitted
Cleanup SPI_Multiple_Buses (espressif#3527)
* Utilize prepoc symbols for SPI pins * Adjusts for GPIO pins when ALTERNATE_PINS is set
1 parent 5443d7c commit 579e04b

File tree

1 file changed

+40
-10
lines changed

1 file changed

+40
-10
lines changed

libraries/SPI/examples/SPI_Multiple_Buses/SPI_Multiple_Buses.ino

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,30 @@
1515
*/
1616
#include <SPI.h>
1717

18+
// Define ALTERNATE_PINS to use non-standard GPIO pins for SPI bus
19+
20+
#ifdef ALTERNATE_PINS
21+
#define VSPI_MISO 2
22+
#define VSPI_MOSI 4
23+
#define VSPI_SCLK 0
24+
#define VSPI_SS 33
25+
26+
#define HSPI_MISO 26
27+
#define HSPI_MOSI 27
28+
#define HSPI_SCLK 25
29+
#define HSPI_SS 32
30+
#else
31+
#define VSPI_MISO MISO
32+
#define VSPI_MOSI MOSI
33+
#define VSPI_SCLK SCK
34+
#define VSPI_SS SS
35+
36+
#define HSPI_MISO 12
37+
#define HSPI_MOSI 13
38+
#define HSPI_SCLK 14
39+
#define HSPI_SS 15
40+
#endif
41+
1842
static const int spiClk = 1000000; // 1 MHz
1943

2044
//uninitalised pointers to SPI objects
@@ -28,22 +52,28 @@ void setup() {
2852

2953
//clock miso mosi ss
3054

55+
#ifndef ALTERNATE_PINS
3156
//initialise vspi with default pins
3257
//SCLK = 18, MISO = 19, MOSI = 23, SS = 5
3358
vspi->begin();
59+
#else
3460
//alternatively route through GPIO pins of your choice
35-
//hspi->begin(0, 2, 4, 33); //SCLK, MISO, MOSI, SS
36-
61+
vspi->begin(VSPI_SCLK, VSPI_MISO, VSPI_MOSI, VSPI_SS); //SCLK, MISO, MOSI, SS
62+
#endif
63+
64+
#ifndef ALTERNATE_PINS
3765
//initialise hspi with default pins
3866
//SCLK = 14, MISO = 12, MOSI = 13, SS = 15
39-
hspi->begin();
67+
hspi->begin();
68+
#else
4069
//alternatively route through GPIO pins
41-
//hspi->begin(25, 26, 27, 32); //SCLK, MISO, MOSI, SS
70+
hspi->begin(HSPI_SCLK, HSPI_MISO, HSPI_MOSI, HSPI_SS); //SCLK, MISO, MOSI, SS
71+
#endif
4272

4373
//set up slave select pins as outputs as the Arduino API
4474
//doesn't handle automatically pulling SS low
45-
pinMode(5, OUTPUT); //VSPI SS
46-
pinMode(15, OUTPUT); //HSPI SS
75+
pinMode(VSPI_SS, OUTPUT); //VSPI SS
76+
pinMode(HSPI_SS, OUTPUT); //HSPI SS
4777

4878
}
4979

@@ -60,18 +90,18 @@ void vspiCommand() {
6090

6191
//use it as you would the regular arduino SPI API
6292
vspi->beginTransaction(SPISettings(spiClk, MSBFIRST, SPI_MODE0));
63-
digitalWrite(5, LOW); //pull SS slow to prep other end for transfer
93+
digitalWrite(VSPI_SS, LOW); //pull SS slow to prep other end for transfer
6494
vspi->transfer(data);
65-
digitalWrite(5, HIGH); //pull ss high to signify end of data transfer
95+
digitalWrite(VSPI_SS, HIGH); //pull ss high to signify end of data transfer
6696
vspi->endTransaction();
6797
}
6898

6999
void hspiCommand() {
70100
byte stuff = 0b11001100;
71101

72102
hspi->beginTransaction(SPISettings(spiClk, MSBFIRST, SPI_MODE0));
73-
digitalWrite(15, LOW);
103+
digitalWrite(HSPI_SS, LOW);
74104
hspi->transfer(stuff);
75-
digitalWrite(15, HIGH);
105+
digitalWrite(HSPI_SS, HIGH);
76106
hspi->endTransaction();
77107
}

0 commit comments

Comments
 (0)
0