stm32 Fatfs 讀寫SD卡
#include "common.h" /*-----------------------------------------------------------------------*/ /* Inidialize a Drive */ DSTATUS disk_initialize ( BYTE drv /* Physical drive nmuber (0..) */ ) { u8 state; if(drv) { return STA_NOINIT; //僅支援磁碟0的操作 } state = SD_Init(); if(state == STA_NODISK) { return STA_NODISK; } else if(state != 0) { return STA_NOINIT; //其他錯誤:初始化失敗 } else { return 0; //初始化成功 } } /*-----------------------------------------------------------------------*/ /* Return Disk Status */ DSTATUS disk_status ( BYTE drv /* Physical drive nmuber (0..) */ ) { if(drv) { return STA_NOINIT; //僅支援磁碟0操作 } //檢查SD卡是否插入 if(!SD_DET()) { return STA_NODISK; } return 0; } /*-----------------------------------------------------------------------*/ /* Read Sector(s) */ DRESULT disk_read ( BYTE drv, /* Physical drive nmuber (0..) */ BYTE *buff, /* Data buffer to store read data */ DWORD sector, /* Sector address (LBA) */ BYTE count /* Number of sectors to read (1..255) */ ) { u8 res=0; if (drv || !count) { return RES_PARERR; //僅支援單磁碟操作,count不能等於0,否則返回引數錯誤 } if(!SD_DET()) { return RES_NOTRDY; //沒有檢測到SD卡,報NOT READY錯誤 } if(count==1) //1個sector的讀操作 { res = SD_ReadSingleBlock(sector, buff); } else //多個sector的讀操作 { res = SD_ReadMultiBlock(sector, buff, count); } /* do { if(SD_ReadSingleBlock(sector, buff)!=0) { res = 1; break; } buff+=512; }while(--count); */ //處理返回值,將SPI_SD_driver.c的返回值轉成ff.c的返回值 if(res == 0x00) { return RES_OK; } else { return RES_ERROR; } } /*-----------------------------------------------------------------------*/ /* Write Sector(s) */ #if _READONLY == 0 DRESULT disk_write ( BYTE drv, /* Physical drive nmuber (0..) */ const BYTE *buff, /* Data to be written */ DWORD sector, /* Sector address (LBA) */ BYTE count /* Number of sectors to write (1..255) */ ) { u8 res; if (drv || !count) { return RES_PARERR; //僅支援單磁碟操作,count不能等於0,否則返回引數錯誤 } if(!SD_DET()) { return RES_NOTRDY; //沒有檢測到SD卡,報NOT READY錯誤 } // 讀寫操作 if(count == 1) { res = SD_WriteSingleBlock(sector, buff); } else { res = SD_WriteMultiBlock(sector, buff, count); } // 返回值轉換 if(res == 0) { return RES_OK; } else { return RES_ERROR; } } #endif /* _READONLY */ /*-----------------------------------------------------------------------*/ /* Miscellaneous Functions */ DRESULT disk_ioctl ( BYTE drv, /* Physical drive nmuber (0..) */ BYTE ctrl, /* Control code */ void *buff /* Buffer to send/receive control data */ ) { DRESULT res; if (drv) { return RES_PARERR; //僅支援單磁碟操作,否則返回引數錯誤 } //FATFS目前版本僅需處理CTRL_SYNC,GET_SECTOR_COUNT,GET_BLOCK_SIZ三個命令 switch(ctrl) { case CTRL_SYNC: SD_CS_ENABLE(); if(SD_WaitReady()==0) { res = RES_OK; } else { res = RES_ERROR; } SD_CS_DISABLE(); break; case GET_BLOCK_SIZE: *(WORD*)buff = 512; res = RES_OK; break; case GET_SECTOR_COUNT: *(DWORD*)buff = SD_GetCapacity(); res = RES_OK; break; default: res = RES_PARERR; break; } return res; } /*-----------------------------------------------------------------------*/ /* User defined function to give a current time to fatfs module */ /* 31-25: Year(0-127 org.1980), 24-21: Month(1-12), 20-16: Day(1-31) */ /* 15-11: Hour(0-23), 10-5: Minute(0-59), 4-0: Second(0-29 *2) */ DWORD get_fattime (void) { return 0; }
相關推薦
stm32 Fatfs 讀寫SD卡
#include "common.h" /*-----------------------------------------------------------------------*/ /* Inidialize a Drive
STM32利用SPI讀寫SD卡的程式詳解
SD卡的讀寫驅動程式是運用FATFS的基礎,學了FATFS就可以在SD卡上建立資料夾及檔案了。我們先從main檔案瞭解一下程式的執行流程int main(void) { u16 i; USART1_Config(); for(i=0;i<1536;i++) send_data[
讀寫sd卡代碼分析(vivado sdk c++)
adf obj 基本數據 rect 原型 love you 直接 lseek ace void ReadFloatsFromSDFile(float *weightsFromFile, const std::string file_name) { FIL fil;
Zynq讀寫SD卡
之前一直沒有寫過部落格,也不知道如何開始,現在想記錄一下自己做過的事情,以後回看還能記得更快。那就以此為開始吧~~~ 專案需要,要實現一個將資料寫入到SD卡中的小demo,查找了一些資料,最後終於實現,將具體實現方案記錄如下。 1.搭建Zynq硬體平臺,根據開發板及
unity 讀寫sd卡
真機上測試畫面: 建議先看 unity儲存到手機本地儲存空間 這篇文章 然後再看這篇文章,因為上篇步驟已經很詳細,所以這篇文章在上篇文章基礎上修改一下,很多步驟沒有截圖 最後看一下生成的檔案在手機的位置
Android 6.0 讀寫SD卡許可權問題
一、問題描述 Android 6.0 下預設儲存SD卡,使用原生FMRadio生成的檔案儲存到內部儲存中 【預置條件】插入T卡 【操作步驟】設定>儲存裝置和USB>選擇SD卡為預設儲存>收音機錄音 【實際結果】收音機的錄音檔案未儲存到T卡 【預期結果】收音機
Android6.0 讀寫SD卡許可權動態申請
轉自:http://bbs.csdn.net/topics/391985867 安卓6.0以上,進行了許可權管理 不止要在AndroidManifest.xml裡面新增許可權<uses-permission android:name="android.permiss
sd卡讀寫——sd example閱讀
constant aligned sta beginning pri format lba () sdn 改mss後import example 主要是用fat的函數讀寫sd 1 /*******************************************
C#操作明華澳漢讀寫器讀寫M1卡往扇區塊寫入讀取值小結
近期因為專案中需要用到往IC卡的扇區塊中寫入值 並讀取值,並且是漢字。官方給的demo示例不是很規範,過程也有很多坑。先總結如下: 1、調整mifareone類中寫入的函式引用 最後一個寫入的文字引數由原 改為: 因為根據幫助文件,寫
如何避開Android 6.0新增的特性獲取IMEI和讀寫記憶體卡許可權
在Android 6.0之後新增了動態許可權,比如獲取IMEI,寫入外接儲存卡的時候需要新增動態許可權。關於動態許可權參考文章。我們在新增動態許可權的時候都需要回調Activity裡面的onRequestPermissionsResult(int requestCode,St
使用STM32CUBEMX生成USB Mass Storage程式碼,通過SDIO讀寫TF卡
首先配置USB為Mass Storage Class,配置SDIO為 SD 4 bits wide bus。 這裡我使用了FreeRTOS和FATFS,用不用和本例無關。有一個坑,就是SDIO的配置介面,MX軟體建議不設分頻,但這裡需要慎重,SDIOCLK的分頻要按照自己硬體板
mfc 裸寫sd卡扇區
#include "stdafx.h" #include <windows.h> #include "stdafx.h" #include "types_def.h" #include "compat_error.h" #include "compat_sem
MSP430 SD卡SPI讀寫操作(4) —— FatFs檔案系統實現(以MSP430F5438A為例)
本節介紹MSP430F5438A FatFs檔案系統的移植。 FatFs是一個通用的檔案系統模組,用於在小型嵌入式系統中實現FAT檔案系統。FatFs模組與IO是分開的,因此移植時需要實現下面幾個底層函式: DSTATUS disk_initialize (BYTE dr
用FATFS在SD卡裏寫一串數字
就會 info http src 需要 alt bsp 字符串 都是 用FATFS寫SD卡,需要把數組的各個位取出來,變成字符串,然後才能寫進去,,如果直接寫就會出現亂碼 還有一點要註意,就是 要寫進去的東西如:pzu和pv1都是指針,,,,把一個指針指向數組之後,才能寫,
android 資料儲存<一>----android簡訊傳送器之檔案的讀寫(手機+SD卡)
本文實踐知識點有有三: 1.佈局檔案,android佈局有相對佈局。線性佈局,絕對佈局。表格佈局。標籤佈局等,各個佈局能夠巢狀的。 本文的佈局檔案就是線性佈局的巢狀 <LinearLayout xmlns:android="http://schemas.and
單元測試+記憶體、SD卡、SP讀寫+XmlPullParser
測試: •測試的相關概念 1、根據是否知道原始碼分類: 黑盒測試: a - b - c 邊值測試 測試邏輯業務 白盒測試: 根據原始碼寫測試方法 或者 測試用例; 2、根據測試的粒度分類: 方法測試:寫完一個方法後就測試 單元測試:測試一個能夠獨立執行的業務邏輯單元; 整合測
Android SD卡簡單的檔案讀寫操作
Android SD卡簡單的檔案讀寫操作 最近有這樣的需求,把每次統計到的資料,以txt形式儲存到手機SD卡或是手機記憶體中,遇到一些問題,記錄下來。 首先如果要在程式中使用sdcard進行儲存,我們必須要在AndroidManifset.xml檔案進行下
Android獲取外接SD卡讀寫路徑
1. 外接SD卡的一些問題 1.1 關於外接SD卡上的讀寫路徑 Android 4.4及以上版本,應用的外接SD卡讀寫路徑被限定在固定路徑上(外接SD卡根路徑/Android/data/包名/files)。 Android4.4以下版本,申請了外接SD卡讀寫許可權的應用在整個
Android值資料讀寫在sd卡需要注意的事項
使用Sdcard注意事項: 1.許可權問題: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 2.硬性編碼問題:通過 Environment可以獲取sdca
SD卡 SPI模式讀寫要點
最近用FPGA實現了從SD卡讀資料的基本功能,一些要點: 1.sd卡上電後,先拉低CS,傳送至少74個clock,然後拉高CS,傳送至少74個clock。 2.傳送CMD0,SD卡迴應0x01 3.重複傳送CMD55+ACMD41,直到SD卡迴應0x00 4.傳送CMD17+