欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
STM32 fats0.13a SDIO移植成功代碼
[打印本頁(yè)]
作者:
IdeaMing
時(shí)間:
2018-3-2 09:36
標(biāo)題:
STM32 fats0.13a SDIO移植成功代碼
根據(jù)論壇的帖子
http://www.raoushi.com/bbs/dpj-88507-1.html
自己移植了最新版FATS 0.13a
測(cè)試成功,可以讀寫文件,追加文件。
部分代碼如下
void SD_ReadTest(void)
{
unsigned int offset = 0;
disk_initialize(DEV_MMC);
res = f_mount(&fs,"1:",0); // 掛載
res = f_open(&fsrc,"1:/KILLL.BAT",FA_OPEN_EXISTING | FA_READ); // 打開文件
if(res != FR_OK)
{
printf("%d ",res);
printf("open error\r\n");
}
else
{
file_size = f_size(&fsrc);
printf("filesize:%d\r\n",file_size);
do{
res = f_lseek(&fsrc,offset); // 指針往后推128
res = f_read(&fsrc,buffer,sizeof(buffer),&br);
if(res == FR_OK)
{
USART1_SendBuf(buffer,br);
printf("\r\n");
}
else
{
printf("read fils err\r\n");
}
offset += 128;
file_size -= 128;
}while(file_size>128);
if(file_size>0)
{
res = f_read(&fsrc,buffer,file_size,&br);
if(res == FR_OK)
{
USART1_SendBuf(buffer,br);
printf("EndOfFile\r\n");
}
else
{
printf("read fils err\r\n");
}
}
f_close(&fsrc);// 關(guān)閉文件
}
f_mount(NULL,"1:",0); //卸載磁盤
}
復(fù)制代碼
獲取文件長(zhǎng)度并串口輸出文件內(nèi)容,適用于讀取bin文件做系統(tǒng)軟件升級(jí)IAP.
FRESULT open_append (
FIL* fp, /* [OUT] File object to create */
const char* path /* [IN] File name to be opened */
)
{
FRESULT fr;
/* Opens an existing file. If not exist, creates a new file. */
fr = f_open(fp, path, FA_WRITE | FA_OPEN_ALWAYS);
if (fr == FR_OK) {
/* Seek to end of the file to append data */
fr = f_lseek(fp, f_size(fp));
if (fr != FR_OK)
f_close(fp);
}
return fr;
}
void SD_WriteTest(void)
{
unsigned char write_f[20]={"ming write file test"};
disk_initialize(0);
res = f_mount(&fs,"1:",0);
res = open_append(&fdst,"1:/testa.txt");
// res = f_open(&fdst, "1:/testa.txt", FA_CREATE_ALWAYS | FA_WRITE);
if(res != FR_OK)
{
printf("open error\r\n");
}
else
{
f_printf(&fdst, "%d\n", runtime);
//res = f_write(&fdst,write_f,sizeof(write_f),&bw);
//res = f_puts("hello",&fdst);
if(res <0)
{
printf("write err! %d\r\n",res);
}
else
{
printf("write ok! %d\r\n",res);
}
f_close(&fdst);
}
f_mount(NULL,"1:",0);// 卸載
printf("write test passed! \r\n");
}
復(fù)制代碼
文件內(nèi)容追加,適合保存日志log
void ReadSDFile(void)
{
// FIL file;
FILINFO finfo;
DIR dirs;
int i_name=0;
// char *fn;
f_mount(&fs,"1:",1);
res = f_opendir(&dirs, "1:/");
if (res == FR_OK)
{
while (f_readdir(&dirs, &finfo) == FR_OK)
{
if (finfo.fattrib & AM_ARC)
{
if(!finfo.fname[0]) break; //文件名不為空,如果為空,則表明該目錄下面的文件已經(jīng)讀完了
stringcopy(buff_filename[i_name], (BYTE*)finfo.fname);
i_name++;
file_cnt = i_name;
}
}
f_close(&fsrc);
i_name = 0;
do{
//USART1_SendBuf(buff_filename[i_name],br);
printf("%s\r\n",buff_filename[i_name]);
i_name++;
file_cnt--;
}while(file_cnt);
}
f_mount(NULL,"1:",1);
}
復(fù)制代碼
獲取文件列表。
STM32_SDIO_FAT13.zip
(1.44 MB, 下載次數(shù): 39)
2018-3-2 09:35 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
如果需要解壓密碼,請(qǐng)雙擊壓縮包或右鍵壓縮包查看注釋。
作者:
Oxygen_
時(shí)間:
2021-4-25 22:57
這個(gè)是單線的SDIO,且是MMC卡,如果是4線,8線SDIO,DMA操作,SD卡都需要自行修改
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1