Stap 3: Test code
We Arduino bibliotheek direct op pcDuino voor de verschillende belangrijkste controle-chip tussen de Arduino en de pcDuino geen gebruikmaken, dientengevolge, zal het fout melden als we direct gebruik maken van de SD-kaart in de Arduino gedragen door pcDuino.
Om te beginnen, klik de SD die is gedownload en hersteld goed en kon worden gebruikt op pcDuino. Dan, om te wijzigen van de naam van het uitgepakte bestand naar SD hoofdletters (zoals het figuur de SD kaartbestand op het Bureau, in de bibliotheken de oorspronkelijke eigen bibliotheek van IDE is)
Toen we de SD-bibliotheek in bibliotheken vervangen door onze eigen SD bibliotheek (als volgt)
Kies de "toepassing deze optie op alle bestaande bestand", klik op overschrijven en de verandering werk goed gedaan zal worden. Bedek de "Print.h" in "/ usr/share/arduino/hardware/arduino/pcduino/cores/arduino" met het meegeleverde bestand Print eindelijk. Kopieer de onderstaande code in de IDE van pcDuino
#include
#include Sd2Card kaart; SdVolume volume; SdFile wortel;
#define chipSelect 10 void setup {uint32_t volumesize;
SD.begin(chipSelect);
Als (! card.init (4, chipSelect))
{printf ("initialisatie is mislukt. Things to check: \n");
printf ("* is een kaart wordt ingevoegd? \n");
printf ("* klopt uw bedrading? \n");
printf ("* heeft u de chipSelect pin zodat deze overeenkomen met uw schild of module wijzigen? \n");
terugkeer; }
anders printf ("bedrading correct is en een kaart is heden. \n");
printf ("\nCard-type:");
switch(Card.type()) {SD_CARD_TYPE_SD1 kast: printf("SD1\n");
breken; kast SD_CARD_TYPE_SD2: printf("SD2\n");
breken; Case SD_CARD_TYPE_SDHC:
printf("SDHC\n"); breken; standaard:
printf("Unknown\n"); breken; } / / Nu zullen we proberen te openen van de 'volume' / 'verdeling' – het moet FAT16 of FAT32
Als (! volume.init(card))
{printf ("kon niet vinden FAT16/FAT32 partitie. \nMake zeker dat u de card\n hebt opgemaakt"); terugkeer;}
printf ("volumetype is FAT%d\n",volume.fatType());
volumesize = volume.blocksPerCluster();
clusters zijn verzamelingen van blokken volumesize * = volume.clusterCount(); //
We hebben een heleboel clusters volumesize * = 512; SD kaart blokken zijn altijd 512 bytes
printf ("de grootte van het Volume (bytes): T%d\n",volumesize);
volumesize / = 1024;
printf ("de grootte van het Volume (Koctetten): T%d\n",volumesize);
volumesize / = 1024; printf ("de grootte van het Volume (MB):
T%d\n",volumesize); if(root.openRoot(volume) == false)
{printf ("Root Open mislukt!'); terugkeer;}
printf ("bestanden gevonden op de kaart (naam, datum en grootte in bytes):");
lijst van alle bestanden in de kaart met datum en grootte root.ls ((LS_R | LS_DATE | LS_SIZE), 8); root.Close(); printf("\n"); Serial.begin(9600); }
void loop {}