資源簡介
自己寫的SD卡的spi模式實現和FAT16文件系統的實現,注釋挺詳細的。其中SD卡的讀寫操作函數是基于nios ii的,所以我特地說明了怎么移植我的FAT16到其他單片機上
代碼片段和文件信息
/*
?*?Fat16.c
?*
?*??Created?on:?2012-2-24
?*??????Author:?Ming
?*/
#include“Fat16.h“
FAT_BPB?Bpb;
FAT_OFFSET?Offset;
//--------------------------------------------內部函數----------------------------------------------------------------//
//-----------------------------------------------------------//
//Function?Name :?ToUper
//description :?將小寫字母轉為大寫字母
//Input :?alt_u8?*str:字符串指針
//Output :?None
//Return :?None
//-----------------------------------------------------------//
void?ToUper(alt_u8?*str)
{
do{
if(*str?>=?‘a‘?&&?*str?<=?‘z‘)?*str?=?*str?-?‘a‘?+?‘A‘;
}while(*str++);
}
//-----------------------------------------------------------//
//Function?Name :?MemSet
//description :?對動態申請的堆區進行置零
//Input :?alt_u8?*pMem?:?指向申請堆區的指針
// ??alt_u16?Size?:?申請堆區的大小
//Output :?None
//Return :?None
//-----------------------------------------------------------//
void?MemSet(alt_u8?*pMemalt_u16?Size)
{
for(;Size?>?0;Size--)?*pMem++?=?0;
}
//-----------------------------------------------------------//
//Function?Name :?MemCopy
//description :?按字節進行一塊區域的拷貝
//Input :?alt_u8?*pSourse?:?要拷貝區域的指針
// ??alt_u16?Size?:?拷貝字節數
//Output :?at_u8?*pDest?:?拷貝后存放區域的指針
//Return :?None
//-----------------------------------------------------------//
void?MemCopy(alt_u8?*pDestalt_u8?*pSoursealt_u16?Size)
{
for(;Size?>?0;Size--)?*pDest++?=?*pSourse++;
}
//-----------------------------------------------------------//
//Function?Name :?InitDIR
//description :?給DIR初始化賦初值
//Input :?DIR?*pDir:DIR指針
//Output :?None
//Return :?None
//-----------------------------------------------------------//
void?InitDIR(DIR?*pDir)
{
alt_u8?i*p?=?(alt_u8*)pDir;
for(i?=?0;i?32;i++){
*p++?=?0x00;
}
}
//-----------------------------------------------------------//
//Function?Name :?FileNameConvert
//description :?將字符串文件名轉換成8.3格式文件名
//Input :?char?*pFileName?:?字符串文件名指針
//Output :?FILE_NAME?*pFile_Name?:?8.3格式文件名指針
//Return :?0:成功
// ??1:非法文件名
//-----------------------------------------------------------//
alt_u8?FileNameConvert(alt_u8?*pFileNameFILE_NAME?*pFile_Name)
{
alt_u8?count?=?0*p?=?pFileName;
ToUper(p); //文件名轉為大寫
do{
if(*p?==?(alt_u8)‘.‘){
if(count?<=?8){ ??????????? //文件名長度小于等于8
MemCopy(pFile_Name->NamepFileNamecount);
for(;count?8;count++)?pFile_Name->Name[count]?=?‘?‘;
MemCopy(pFile_Name->Typep?+?13);
return?TRUE;
}
else{ //文件名大于8
MemCopy(pFile_Name->Name(alt_u8*)pFileName6);
pFile_Name->Name[6]?=?‘~‘;
pFile_Name->Name[7]?=?‘1‘;
MemCopy(pFile_Name->Typep?+?13);
return?TRUE;
}
}
count++;
}while(*p++?!=?‘?‘);
return?FALSE;
}
//-----------------------------------------------------------//
//Function?Name :?IsEqual
//description :?判斷兩個數據串是否相等
//Input :?alt_u8?*pDataA?:?數據串A
// ??alt_u8?*pDataB?:?數據串B
// ??alt_u8?Size?:?數據串長度
//Output :?None
//Return :?0:相等
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???23691756??2012-04-02?21:02??SD_spi+FAT16\SD_spi+FAT16工程.rar
?????文件???????3111??2012-02-10?10:11??SD_spi+FAT16\代碼\FAT16\alt_types.h
?????文件??????26496??2012-04-02?21:50??SD_spi+FAT16\代碼\FAT16\Fat16.c
?????文件???????4679??2012-04-02?21:49??SD_spi+FAT16\代碼\FAT16\Fat16.h
?????文件???????1507??2012-04-02?19:34??SD_spi+FAT16\代碼\FAT16\SD\SD_spi.c
?????文件???????1249??2012-04-02?17:31??SD_spi+FAT16\代碼\FAT16\SD\SD_spi.h
?????文件???????1959??2012-04-02?21:54??SD_spi+FAT16\代碼\FAT16\SD_spi_main.c
?????文件????????334??2012-04-02?21:38??SD_spi+FAT16\代碼\FAT16\代碼使用說明.txt
?????文件???????9231??2012-04-02?17:31??SD_spi+FAT16\代碼\SD_spi_nios\SD_spi_Solution.c
?????文件???????1735??2012-04-02?17:31??SD_spi+FAT16\代碼\SD_spi_nios\SD_spi_Solution.h
?????文件????????713??2012-04-02?21:34??SD_spi+FAT16\代碼\代碼使用說明.txt
?????文件????????162??2012-04-02?21:32??SD_spi+FAT16\使用說明.txt
?????目錄??????????0??2012-04-02?21:26??SD_spi+FAT16\代碼\FAT16\SD
?????目錄??????????0??2012-04-02?21:35??SD_spi+FAT16\代碼\FAT16
?????目錄??????????0??2012-04-02?21:08??SD_spi+FAT16\代碼\SD_spi_nios
?????目錄??????????0??2012-04-02?22:01??SD_spi+FAT16\代碼
?????目錄??????????0??2012-04-02?21:28??SD_spi+FAT16
-----------?---------??----------?-----??----
?????????????23742932????????????????????17
- 上一篇:課本生物醫學傳感器原理彭承琳
- 下一篇:GanJingYunV2.zip
評論
共有 條評論