目录
前言
简单将SD卡挂载到RTthread系统,主控芯片STM32F407VET6
一、CubeMX配置
1、新建完工程后,打开CubeMX 进行配置
2.配置基本功能和时钟后,选择SDIO连接方式
3.此处配置时钟没啥用, RTThread在配置SD卡时钟时,默认获取的APB2的时钟。
[D/SDIO] init SD card failed!
二、Rtthread配置
1.安照drivers/board.h中SDIO功能配置步骤进行
2.打开DFS FAT (使能虚拟文件系统)
三、初始化代码
#include <rtthread.h>
#include <dfs_file.h>
//#include <dfs_posix.h> /* 当需要使用文件操作时,需要包含这个头文件 */
#include <string.h>
#define DEBUGSDCARD
void SDcardInit(void)
{
unsigned char ucCount = 0;
rt_thread_mdelay(200);
// dfs_mkfs("elm", "sd0"); //开启存储卡格式化
while(dfs_mount("sd0", "/", "elm", 0, 0))
{
ucCount++;
if(ucCount == 3)
dfs_mkfs("elm", "sd0");
if(ucCount > 4)
{
#ifdef DEBUGSDCARD
rt_kprintf("dfs mount failed!\r\n");
#endif
break;
}
rt_thread_mdelay(100);
}
#ifdef DEBUGSDCARD
if(ucCount <= 4)
rt_kprintf("dfs mount sucess! restart = %d\r\n",ucCount >= 3 ? 1 : 0);
#endif
}
总结
简单介绍了SD卡在RTThread操作系统上的挂载
需要注意的是:SD卡初始化时是否需要格式化