Hi all,
I followed this topic Problem using both SPI library and SD library in Arduino UNO program - Networking, Protocols, and Devices - Arduino Forum and found that I have the similar problem like the previous thread. I have an adafruit bluefruit le and a sparkfun microsd shield. Both of them are using SPI. I couldn't get them working together.
I saw the last post on that thread about that solution. I jumped from SD library to SDFat libary but still I couldn't get them working. I have tried testing each SPI peripheral separately and each worked fine. The bluefruit le worked fine with other SPI peripherals as well. Help me please?
/*
SD card read/write
This example shows how to read and write data to and from an SD card file
The circuit:
* SD card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4
created Nov 2010
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe
This example code is in the public domain.
*/
#define SD_CS_PIN 53
//#include <SD.h>
#include <SdFat.h>
SdFat sd;
File myFile;
void sd_setup()
{
// Open serial communications and wait for port to open:
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.print("Initializing SD card...");
// On the Ethernet Shield, CS is pin 4. It's set as an output by default.
// Note that even if it's not used as the CS pin, the hardware SS pin
// (10 on most Arduino boards, 53 on the Mega) must be left as an output
// or the SD library functions will not work.
pinMode(SD_CS_PIN, OUTPUT);
if (!sd.begin(SD_CS_PIN)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
pinMode(SD_CS_PIN, OUTPUT);
digitalWrite(SD_CS_PIN, HIGH);
// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
/*
myFile = sd.open("test.txt", FILE_WRITE);
// if the file opened okay, write to it:
if (myFile) {
Serial.print("Writing to test.txt...");
myFile.println("testing 1, 2, 3.");
// close the file:
myFile.close();
Serial.println("done.");
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
// re-open the file for reading:
myFile = sd.open("test.txt");
if (myFile) {
Serial.println("test.txt:");
// read from the file until there's nothing else in it:
while (myFile.available()) {
Serial.write(myFile.read());
}
// close the file:
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening test.txt");
}
*/
}
void sd_loop()
{
// nothing happens after setup
}
Jialee