RT-Thread Studio驅動SD卡
RT-Thread Studio驅動SD卡
前言
硬體平臺:RT-Thread ART-Pi STM32H750XBH6開發板 H750開發板
開發軟體:RT-Thread Studio
相關元件:elm FatFs虛擬檔案系統、SPI驅動、SD裝置驅動和SDIO
參考部落格:RT-Thread Studio使用SDIO驅動SD卡掛載檔案系統
官方資料:虛擬檔案系統
實驗目的:使用開發板上的SD卡介面,實現對SD卡資料的讀和寫。
一、建立基本工程
1、建立Bootloader
開啟RT-Thread Studio,按 “檔案 -> 新建 -> RT-Thread專案” 路徑新建Bootloader工程。
具體配置如下所示:
點選完成後即可得到一個Bootloader程式。
- 開啟該程式點選編譯
- 編譯完成後再帶點選下載。、
BootLoader主要用於使用外掛Falsh儲存程式碼時 初始化外掛的Flash、對映實體地址及地址跳轉。ART - Pi使用QSPI連線8M的W25Q64。
2、建立專案工程
開啟RT-Thread Studio,按 “檔案 -> 新建 -> RT-Thread專案” 路徑新建led工程。
具體配置如下所示:
點選完成後即可得到一個led閃爍程式。
- 開啟該程式點選編譯
- 編譯完成後再帶點選下載。、
- 效果演示:
二、配置RT-Thread Settings
雙擊左側專案資源管理器下led工程的“RT-Thread Settings”開啟視覺化配置。
開啟後如下圖所示。
滑鼠左鍵單擊開啟Fatfs、SDIO元件,Ctrl + s儲存。
直接編譯發現有報錯,沒有開啟BSP_USING_SDIOx。
既然沒開啟,那就開啟它就好了。SDIO屬於晶片外圍硬體,所以應開啟硬體配置。
使能SDIO,選擇SDIO1。
為什麼是SDIO1而不是SDIO2呢?看開發板的原理圖就能確定,SD卡接入了SDIO1中。
重新儲存配置並編譯,發現沒有報錯。但是到這裡只是成功配置元件,要實現對SD卡資料的讀寫還需要先掛載檔案系統。
因為sd卡使用的dfs屬於部件,因此使用”部件自動初始化“函式對其完成註冊。在終端輸入”list_device“指令可以檢視已經掛載的裝置。
掛載檔案系統程式碼:
#include "dfs_fs.h"
int sd_init(void)
{
rt_thread_mdelay(100);//這段延時必須加上,系統上電過程中存在延時,否則會出現先掛載後註冊塊裝置sd0的情況
//mkfs("elm","sd0");//掛在前需格式化
if(dfs_mount("sd0","/","elm",0,0)==0) //掛載檔案系統,引數:塊裝置名稱、掛載目錄、檔案系統型別、讀寫標誌、私有資料0
{
rt_kprintf("dfs mount success\r\n");
}
else
{
rt_kprintf("dfs mount failed\r\n");
}
return 0;
}
INIT_COMPONENT_EXPORT(sd_init);
讀寫SD卡資料
讀寫資料程式碼:
#include "dfs_posix.h"
void SD_RW(void)
{
char wbuf[] = "hello world!", rbuf[30] = {0};
int rsize = 0;
int fd = 0; //檔案描述符
//寫入資料
fd = open("/a.txt", O_WRONLY | O_CREAT); //開啟檔案,如果不存在就新建一個
if(fd>0)
{
write(fd, wbuf, sizeof(wbuf));
close(fd);
rt_kprintf("write success\r\n");
}
//讀取資料
fd = open("/a.txt", O_RDONLY); //使用只讀格式開啟
if(fd>0)
{
rsize = read(fd, rbuf, 100);
close(fd);
if(rsize>0)
{
rt_kprintf("READ(%d): %s",rsize,rbuf);
}
}
}
(tips:如果要將資料追加在檔案末尾而非覆蓋資料,開啟檔案時按位或上 O_APPEND 引數)
三、程式碼分析
因為選用的硬體平臺是RT-Thread官方釋出的,所以元件包對硬體已經做好了相容無需自己去配置板上資源。
若是使用其他硬體平臺,可在 ”HAL_SD_MspInit“ 中配置具體使用到的GPIO和模式配置。(可使用CubeMx配置後替換)
ART-Pi SDMMC1的IO分配:
四、效果驗證
-
插到電腦上直接看
-
在終端輸入”cat + 檔名“
總結
當前只是實現了最基本SD卡資料的讀和寫,後續再繼續研究檔案目錄的相關操作並把log存到SD卡中。
相關文章
- RT-Thread Studio使用教程thread
- 製作Linux系統SD啟動卡Linux
- 驅動開發:配置Visual Studio驅動開發環境開發環境
- arduino使用SD卡模組以及檢查SD卡資訊UISD卡
- NUC980 執行 RT-Thread 驅動 SPI 介面 OLED 播放 badapplethreadAPP
- 在VScode 中使用RT-Thread Studio初體驗VSCodethread
- SD(TF)卡原理設計
- SD卡資料恢復SD卡資料恢復
- SD卡分割槽時需要注意什麼?SD卡分割槽注意事項SD卡
- 顯示卡驅動有必要更新嗎 顯示卡驅動怎麼更新詳細教程
- Debian系統顯示卡驅動從官方驅動回退到Nouveau
- 5、RK3399J Linux SD卡啟動Buildroot韌體LinuxSD卡UI
- 儲存圖片到SD卡SD卡
- 相機SD卡照片恢復SD卡
- windows10怎麼更新音效卡驅動_win10更新音效卡驅動的方法WindowsWin10
- win10顯示卡驅動怎麼更新 win10顯示卡驅動更新的方法Win10
- win10顯示卡驅動怎麼更新 升級顯示卡驅動的兩種方法Win10
- ubuntu16.04安裝megaraid-9460-16i驅動(raid卡驅動)UbuntuAI
- openEuler 安裝NVIDIA 顯示卡驅動
- imac怎麼裝win10音效卡驅動_imac如何裝win10音效卡驅動MacWin10
- Win10電腦解除安裝顯示卡驅動及重灌顯示卡驅動的方法教程Win10
- Linux掛載隨身碟,SD卡LinuxSD卡
- 新版amd顯示卡驅動怎麼設定高效能?AMD顯示卡最新驅動設定教程
- 三星SD卡PRO Plus怎麼樣?三星SD卡PRO Plus詳細評測SD卡
- Centos 7 安裝nvidia顯示卡驅動CentOS
- 反射記憶體卡驅動的安裝反射記憶體
- win10怎麼看顯示卡驅動版本_win10如何檢視顯示卡驅動型號Win10
- win10顯示卡驅動死活裝不上 win10解決顯示卡驅動不相容Win10
- Arduino+ESP32 之 SD卡讀寫UISD卡
- win 10怎麼解除安裝音效卡驅動_win10徹底刪除音效卡驅動的方法Win10
- win10音效卡驅動故障怎麼辦_win10音效卡驅動問題的解決方法Win10
- win10如何安裝音效卡驅動程式_w10系統怎樣安裝音效卡驅動Win10
- w10怎麼升級顯示卡驅動程式 win10電腦顯示卡驅動在哪裡更新Win10
- win10自動安裝顯示卡驅動怎樣關閉_怎麼禁止win10自動安裝顯示卡驅動Win10
- sd卡中的資料夾刪除了怎麼恢復,SD卡刪除的檔案如何恢復SD卡
- win10怎麼修復sd卡_win10系統sd卡受損的修復步驟Win10SD卡
- win10平板不識別sd卡怎麼辦_win10平板讀不出sd卡解決方法Win10SD卡
- win10怎麼重新安裝音效卡驅動 win10重新安裝音效卡驅動的方法Win10