驅動sd卡的程式,主要是使用原子的FATFS程式。首先是向卡裡寫資料和讀資料的操作。
這些定義一般都在ff.h檔案中
先定義好
FIL fil;
FRESULT res;
UINT bww;
char buf[100];
寫讀操作:
res=f_open (&fil,"0:/message.txt", FA_OPEN_ALWAYS|FA_WRITE);
f_write (&fil, "alientek test", 50, &bww);
f_close(&fil);
res=f_open (&fil,"0:/message.txt", FA_READ);
f_read (&fil, buf,100,&bww);
但僅僅這樣是不能進行循環寫操作,每次打開都會擦除了原來的内容
要加上一句f_lseek (&fil,f_size (&fil));
就是這樣:
f_open(&fil,"0:/message.txt", FA_OPEN_ALWAYS|FA_WRITE); //打開/建立檔案對象
f_lseek (&fil,f_size (&fil)); //檔案對象的讀寫指針移動到檔案結束處
f_write (&fil,buf,sizeof(buf),&bww); //将buf中的資料寫入到message.txt
f_close (&fil);
這樣就不會覆寫原來的内容了。
因為寫入的資料隻能是字元串,要想寫變量,就用sprintf函數。
同時使用sprintf函數可以讓寫進去的資料進行換行。
sprintf((char*)buf,"Data is:%d \r\n",adcx);
最後合起來就是這樣:
sprintf((char*)buf,"Data is:%d \r\n",adcx); //将資料寫入到buf
f_open(&fil,"0:/message.txt", FA_OPEN_ALWAYS|FA_WRITE); //打開/建立檔案對象
f_close (&fil);