Använda SD-kort Breakout styrelsen pcDuino (3 / 4 steg)
Steg 3: Provningsmetod
Vi kan inte använda Arduino bibliotek direkt på pcDuino för olika viktigaste control chip mellan Arduino och pcDuino, som ett resultat, det rapporterar fel om vi direkt använda SD-kort i Arduino bärs av pcDuino.
För det första, klicka på SD som har laddat ner och repareras väl och kan användas på pcDuino. Då, ändra det uppackade filen namnet till versaler SD (som figur SD kortet filen på skrivbordet, i biblioteken är den ursprungliga egna biblioteket av IDE)
Sedan ersätta vi SD biblioteket i biblioteken med vår egen SD bibliotek (enligt följande)
Välj den "tillämpas alternativet alla befintliga filen", klicka på Skriv över och ändra arbetet blir bra gjort. Till sist täcka "Print.h" i "/ usr/share/arduino/hårdvara/arduino/pcduino/kärnor/arduino" med den medföljande filen Print. Kopiera sedan den nedan koden in i IDE av pcDuino
#include
#include Sd2Card kort; SdVolume volym; SdFile rot.
#define chipSelect 10 void setup() {uint32_t volumesize;
SD.begin(chipSelect);
om (! card.init (4, chipSelect))
{printf ("initieringen misslyckades. Saker att kontrollera: \n");
printf ("* är ett kort sätts? \n");
printf ("* stämmer ditt ledningar? \n");
printf ("* har du ändrat chipSelect PIN-koden för att matcha din sköld eller modul? \n");
hemkomst. }
annars printf ("ledningar är korrekt och ett kort idag. \n");
printf ("\nCard typ:");
Switch(Card.Type()) {mål SD_CARD_TYPE_SD1: printf("SD1\n");
bryta; fall SD_CARD_TYPE_SD2: printf("SD2\n");
bryta; fall SD_CARD_TYPE_SDHC:
printf("SDHC\n"); bryta; standard:
printf("Unknown\n"); bryta; } / / Nu ska vi försöka öppna "volym" / "partition" – det bör FAT16 eller FAT32
om (! volume.init(card))
{printf ("kunde inte hitta FAT16/FAT32 partition. \nMake att du har formaterat card\n"); return;}
printf ("volymtyp är FAT%d\n",volume.fatType());
volumesize = volume.blocksPerCluster();
kluster är samlingar av block volumesize * = volume.clusterCount(); //
Vi har en hel del kluster volumesize * = 512; SD kort block är alltid 512 byte
printf ("volymstorlek (byte): T%d\n",volumesize);
volumesize = 1024;
printf ("volymens storlek (KB): T%d\n",volumesize);
volumesize = 1024; printf ("volymens storlek (MB):
T%d\n",volumesize); IF(root.openRoot(Volume) == false)
{printf ("Root Open misslyckades!"); återvänder;}
printf ("hitta filer på kortet (namn, datum och storlek i byte):");
lista alla filer i kortet med datum och storlek root.ls ((LS_R | LS_DATE | LS_SIZE), 8); root.Close(); printf("\n"); Serial.BEGIN(9600); }
void loop() {}