標題:
移植UCOSIII和FATS到IAR工程,芯片STM32F407,最終可以在串口打印寫入SD卡文件
[打印本頁]
作者:
00日出
時間:
2018-12-10 22:22
標題:
移植UCOSIII和FATS到IAR工程,芯片STM32F407,最終可以在串口打印寫入SD卡文件
步驟:(1)從ST官網(wǎng)下載stm32F4例程(自帶有USOIII3.04)。 (3)根據(jù)芯片手冊修改部分底層BSP。
(4)添加任務(wù),配置任務(wù)參數(shù)(優(yōu)先級、堆棧等)。
(5)書寫主函數(shù)。
(6)編譯,串口調(diào)試。
0.png
(37.73 KB, 下載次數(shù): 61)
下載附件
2018-12-10 22:43 上傳
單片機源程序如下:
#include"myfatapp.h"
/****************************************************************************
* Function Name : FATFS_GetFree
* Description : 讀取總磁盤大小和空閑磁盤大小
* Input : drv:磁盤編號
* * total:保存讀取到的總磁盤大小
* * free:保存讀取到的空閑磁盤大小
* Output : None
* Return : res:讀取狀態(tài)。0:成功;其他則是其他相應(yīng)的錯誤信息。
****************************************************************************/
uint8_t FATFS_GetFree(uint8_t *drv, uint32_t *total, uint32_t *free)
{
FATFS *fs1;
u8 res;
DWORD fre_clust=0, fre_sect=0, tot_sect=0;
/* 得到磁盤信息及空閑簇數(shù)量 */
res = f_getfree((const TCHAR*)drv, &fre_clust, &fs1);
if(res == 0) //表示讀取成功
{
tot_sect = (fs1->n_fatent-2) * fs1->csize; //得到總扇區(qū)數(shù)
fre_sect = fre_clust * fs1->csize; //得到空閑扇區(qū)數(shù)
#if _MAX_SS!=512 //扇區(qū)大小不是512字節(jié),則轉(zhuǎn)換為512字節(jié)
tot_sect *= fs1->ssize/512;
fre_sect *= fs1->ssize/512;
#endif
*total = tot_sect >> 1; //單位為KB
*free = fre_sect >> 1; //單位為KB
}
return res;
}
/****************************************************************************
* Function Name : FATFS_ScanFiles
* Description : 讀取指定文件下所有文件的名字和后綴
* Input : dir:掃描的文件路徑
* * file:用來存放所有文件的名字和后綴的地址
* Output : None
* Return : res:返回讀取的狀態(tài)
****************************************************************************/
uint8_t FATFS_ScanFiles(uint8_t *dir, FileNameTypeDef *file)
{
FRESULT res;
FILINFO fileInfo;
DIR dirs;
char *fn, i = 0;
#if _USE_LFN
static char lfn[_MAX_LFN + 1]; /* Buffer to store the LFN */
fileInfo.lfname = lfn;
fileInfo.lfsize = sizeof(lfn);
#endif
/* 打開文件夾 */
res = f_opendir(&dirs, (const TCHAR*)dir);
if (res == FR_OK) //成功打開文件夾
{
while (f_readdir(&dirs, &fileInfo) == FR_OK) //按照順序讀文件夾
{
if(!fileInfo.fname[0]) //如果文件名為0,結(jié)束
{
break;
}
/* 判斷文件屬性 */
if((fileInfo.fattrib == AM_ARC)|(fileInfo.fattrib == AM_DIR))
{
#if _USE_LFN //為長字符串名準備
fn = *fileInfo.lfname ? fileInfo.lfname : fileInfo.fname;
#else
fn = fileInfo.fname;
#endif
/* 讀取名字 */
i = 0;
while((*fn != '.') && (*fn != '\0')) //有一個成立就跳出循環(huán)
{
file->name[i] = *fn;
i++;
fn++;
}
/* 讀取后綴 */
i = 0;
while(*fn != '\0')
{
file->type[i] = *fn;
i++;
fn++;
}
file++;
}//end of 文件屬性判斷呢
} //end of while (f_readdir(&dirs, &fileInfo) == FR_OK)//按照順序讀文件夾
}
return res;
}
復(fù)制代碼
所有資料51hei提供下載:
FATS.rar
(3.08 MB, 下載次數(shù): 63)
2018-12-10 22:44 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
sunbird606
時間:
2019-4-8 22:36
很棒的范例 謝謝
作者:
world_all
時間:
2022-7-5 09:58
正在尋找,fats版本是0.8的
作者:
wwb8081
時間:
2023-3-23 18:59
很棒的范例 謝謝
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1