improved vasillis's SPI 2 demo
This commit is contained in:
parent
8301021e51
commit
7d7f113f63
|
@ -30,35 +30,47 @@
|
|||
#define SPI1_NSS_PIN PA4 //SPI_1 Chip Select pin is PA4. You can change it to the STM32 pin you want.
|
||||
#define SPI2_NSS_PIN PB12 //SPI_2 Chip Select pin is PB12. You can change it to the STM32 pin you want.
|
||||
|
||||
//SPIClass SPI_2(2); //un-comment this line in case you want to use the SPI_2 port.
|
||||
SPIClass SPI_2(2); //Create an instance of the SPI Class called SPI_2 that uses the 2nd SPI Port
|
||||
byte data;
|
||||
|
||||
void setup() {
|
||||
|
||||
// Setup SPI 1
|
||||
SPI.begin(); //Initialize the SPI_1 port.
|
||||
//SPI_2.begin(); //Initialize the SPI_2 port.
|
||||
|
||||
SPI.setBitOrder(MSBFIRST); // Set the SPI_1 bit order
|
||||
//SPI_2.setBitOrder(MSBFIRST); // Set the SPI_2 bit order
|
||||
|
||||
SPI.setDataMode(SPI_MODE0); //Set the SPI_2 data mode 0
|
||||
//SPI_2.setDataMode(SPI_MODE0); //Set the SPI_2 data mode 0
|
||||
|
||||
SPI.setClockDivider(SPI_CLOCK_DIV16); // Slow speed (72 / 16 = 4.5 MHz SPI_1 speed)
|
||||
//SPI_2.setClockDivider(SPI_CLOCK_DIV16); // Slow speed (72 / 16 = 4.5 MHz SPI_2 speed)
|
||||
pinMode(SPI1_NSS_PIN, OUTPUT);
|
||||
|
||||
// Setup SPI 2
|
||||
SPI_2.begin(); //Initialize the SPI_2 port.
|
||||
SPI_2.setBitOrder(MSBFIRST); // Set the SPI_2 bit order
|
||||
SPI_2.setDataMode(SPI_MODE0); //Set the SPI_2 data mode 0
|
||||
SPI_2.setClockDivider(SPI_CLOCK_DIV16); // Use a different speed to SPI 1
|
||||
pinMode(SPI2_NSS_PIN, OUTPUT);
|
||||
|
||||
|
||||
pinMode(SPI1_NSS_PIN, OUTPUT); // note: this must be after the SPI.begin() for gpio control of CSN
|
||||
//pinMode(SPI2_NSS_PIN, OUTPUT); // note: this must be after the SPI_2.begin() for gpio control of CSN
|
||||
}
|
||||
|
||||
void loop() {
|
||||
digitalWrite(SPI1_NSS_PIN, LOW); // manually take CSN low for SPI_1 transmission
|
||||
//digitalWrite(SPI2_NSS_PIN, LOW); // manually take CSN low for SPI_2 transmission
|
||||
|
||||
data = SPI.transfer(0x55); //Send the HEX data 0x55 over SPI-1 port and store the received byte to the <data> variable.
|
||||
//data = SPI_2.transfer(0x55); //Send the HEX data 0x55 over SPI-2 port and store the received byte to the <data> variable.
|
||||
|
||||
digitalWrite(SPI1_NSS_PIN, HIGH); // manually take CSN high between spi transmissions
|
||||
//digitalWrite(SPI2_NSS_PIN, HIGH); // manually take CSN high between spi transmissions
|
||||
sendSPI();
|
||||
sendSPI2();
|
||||
|
||||
delayMicroseconds(10); //Delay 10 micro seconds.
|
||||
}
|
||||
|
||||
void sendSPI()
|
||||
{
|
||||
digitalWrite(SPI1_NSS_PIN, LOW); // manually take CSN low for SPI_1 transmission
|
||||
data = SPI.transfer(0x55); //Send the HEX data 0x55 over SPI-1 port and store the received byte to the <data> variable.
|
||||
digitalWrite(SPI1_NSS_PIN, HIGH); // manually take CSN high between spi transmissions
|
||||
}
|
||||
|
||||
|
||||
void sendSPI2()
|
||||
{
|
||||
digitalWrite(SPI2_NSS_PIN, LOW); // manually take CSN low for SPI_2 transmission
|
||||
data = SPI_2.transfer(0x55); //Send the HEX data 0x55 over SPI-2 port and store the received byte to the <data> variable.
|
||||
digitalWrite(SPI2_NSS_PIN, HIGH); // manually take CSN high between spi transmissions
|
||||
}
|
Loading…
Reference in New Issue