你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

调试STM32+FATFS+SDIO的总结(转帖)

[复制链接]
onyove 发布时间:2011-4-13 17:21
调试STM32+FATFS+SDIO的总结。

基于STM32的USB程序开发笔记.rar

下载

1.94 MB, 下载次数: 275

收藏 1 评论16 发布时间:2011-4-13 17:21

举报

16个回答
s409348459 回答时间:2011-4-13 21:09:25

RE:调试STM32+FATFS+SDIO的总结(转帖)

这个支持一下!!~~顶楼主!~~
泉水叮咚-257423 回答时间:2011-4-26 10:19:07

RE:调试STM32+FATFS+SDIO的总结(转帖)

感谢共享资源,下载学习去
斯斯-336748 回答时间:2011-12-29 18:43:22

RE:调试STM32+FATFS+SDIO的总结(转帖)

楼主好人啊~~~!
qjb129-156787 回答时间:2012-4-27 12:40:21

回复:调试STM32+FATFS+SDIO的总结(转帖)

正在学习这个,谢谢
NSSH_1989 回答时间:2012-5-16 17:39:29

RE:调试STM32+FATFS+SDIO的总结(转帖)

顶顶顶
yao123-262432 回答时间:2012-7-17 10:04:43

RE:调试STM32+FATFS+SDIO的总结(转帖)

怎么是USB的
qqatscau-366093 回答时间:2012-9-5 17:24:56

RE:调试STM32+FATFS+SDIO的总结(转帖)

怎么成了USB了??
QQ897956996 回答时间:2012-10-19 11:14:28

回复:调试STM32+FATFS+SDIO的总结(转帖)

   大师,我移植了FATFS到flash,发现格式化未成功(未移植文件系统时多扇区(n*512B)读写没问题,已经测试过),如何配置格式化函数呀:
 
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/  Always set 512 for memory card and hard disk but a larger value may be
/  required for floppy disk (512/1024) and optical disk (512/2048).
/  When _MAX_SS is larger than 512, GET_SECTOR_SIZE command must be implememted
/  to the disk_ioctl function. */
 
 
/*-----------------------------------------------------------------------*/
/* 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 = RES_OK;
    //DWORD result;
    if (drv)
    { 
        return RES_ERROR;
    }
    
    switch (ctrl)
    { 
        case CTRL_SYNC:
                           break;
        case GET_SECTOR_COUNT:
        
                           *(DWORD*)buff = (DWORD) 4096;
                           break;                           //2M byte
                           
        case GET_SECTOR_SIZE:
                           
                           //*(DWORD*)buff = (DWORD) 2048;  //>512时从这里获得扇区大小
                           break;  
                                                           //单扇区字节数
        case GET_BLOCK_SIZE:
                           
                           *(DWORD*)buff = (DWORD) 4096;
                           break;                          //族大小  
                           
        case CTRL_POWER :
                  break;
   case CTRL_LOCK :
                  break;
   case CTRL_EJECT :
                  break;
        default:
                           res = RES_ERROR;
                           break;        
    }
    return res;
}
 
 
int main(void)
{
UARTInit ();                    /* UARTInit               */
        PINSEL0 = PINSEL0 & (~0x0F);    /* UART0,设置I/O连接到UART*/                         
        PINSEL0 = PINSEL0 | 0x05;       /* P0.0 = TXD0,P0.1 = RXD0*/   
    
UART0SendStr("\x0c\0");
UART0SendStr("\x0c\0");        //超级终端清屏
UART0SendStr("\033[1;40;32m"); //设置超级终端背景为黑色,字符为绿色
UART0SendStr("\r\n*******************************************************************************");
UART0SendStr("\r\n*********************** Copyright 2012-10-10, liujiehan ***********************");
UART0SendStr("\r\n************************** http://www.upcomputer.com **************************");
UART0SendStr("\r\n***************************** All Rights Reserved *****************************");
UART0SendStr("\r\n*******************************************************************************");
UART0SendStr("\r\n");
 
/*初始化文件系统,检查芯片是否插入以及是否型号正确*/
res = disk_initialize(NORFLASH);
if(res == RES_OK)
{
   UART0SendStr("initialize filesystem successed!\n\r\n\r");
}
else
{
   UART0SendStr("initialize filesystem failed!\n\r\n\r");  
}
/*挂载文件系统*/
res = f_mount(NORFLASH,&fs);
if(res == RES_OK)
{
   UART0SendStr("mount filesystem successed!\n\r\n\r");
}
else
{
   UART0SendStr("mount filesystem failed!\n\r\n\r");  
}
/*格式化磁盘*/
UART0SendStr("正在格式化磁盘,请稍候...\n\r\n\r");
//res = f_mkfs(NORFLASH,1,4096);//4096:每簇占用字节数
res = f_mkfs(NORFLASH,0,4096);//4096:每簇占用字节数
if(res == RES_OK)
{
UART0SendStr("format filesystem successed!\n\r");
 
}
else
{
   UART0SendStr("format filesystem failed!\n\r");
}
res = f_mount(NORFLASH,NULL);
/////////////////////////////////////////////////////////////////////////////////////////////////
res = f_mount(NORFLASH,&fs);
 
/*写文件测试*/
UART0SendStr("write file test......\n\r");
    res = f_open(&FileObject, "test.txt", FA_CREATE_ALWAYS | FA_WRITE);
    。。。
}
 
QQ897956996 回答时间:2012-10-19 11:14:32

回复:调试STM32+FATFS+SDIO的总结(转帖)

   大师,我移植了FATFS到flash,发现格式化未成功(未移植文件系统时多扇区(n*512B)读写没问题,已经测试过),如何配置格式化函数呀:
 
#define _MAX_SS 512 /* 512, 1024, 2048 or 4096 */
/* Maximum sector size to be handled.
/  Always set 512 for memory card and hard disk but a larger value may be
/  required for floppy disk (512/1024) and optical disk (512/2048).
/  When _MAX_SS is larger than 512, GET_SECTOR_SIZE command must be implememted
/  to the disk_ioctl function. */
 
 
/*-----------------------------------------------------------------------*/
/* 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 = RES_OK;
    //DWORD result;
    if (drv)
    { 
        return RES_ERROR;
    }
    
    switch (ctrl)
    { 
        case CTRL_SYNC:
                           break;
        case GET_SECTOR_COUNT:
        
                           *(DWORD*)buff = (DWORD) 4096;
                           break;                           //2M byte
                           
        case GET_SECTOR_SIZE:
                           
                           //*(DWORD*)buff = (DWORD) 2048;  //>512时从这里获得扇区大小
                           break;  
                                                           //单扇区字节数
        case GET_BLOCK_SIZE:
                           
                           *(DWORD*)buff = (DWORD) 4096;
                           break;                          //族大小  
                           
        case CTRL_POWER :
                  break;
   case CTRL_LOCK :
                  break;
   case CTRL_EJECT :
                  break;
        default:
                           res = RES_ERROR;
                           break;        
    }
    return res;
}
 
 
int main(void)
{
UARTInit ();                    /* UARTInit               */
        PINSEL0 = PINSEL0 & (~0x0F);    /* UART0,设置I/O连接到UART*/                         
        PINSEL0 = PINSEL0 | 0x05;       /* P0.0 = TXD0,P0.1 = RXD0*/   
    
UART0SendStr("\x0c\0");
UART0SendStr("\x0c\0");        //超级终端清屏
UART0SendStr("\033[1;40;32m"); //设置超级终端背景为黑色,字符为绿色
UART0SendStr("\r\n*******************************************************************************");
UART0SendStr("\r\n*********************** Copyright 2012-10-10, liujiehan ***********************");
UART0SendStr("\r\n************************** http://www.upcomputer.com **************************");
UART0SendStr("\r\n***************************** All Rights Reserved *****************************");
UART0SendStr("\r\n*******************************************************************************");
UART0SendStr("\r\n");
 
/*初始化文件系统,检查芯片是否插入以及是否型号正确*/
res = disk_initialize(NORFLASH);
if(res == RES_OK)
{
   UART0SendStr("initialize filesystem successed!\n\r\n\r");
}
else
{
   UART0SendStr("initialize filesystem failed!\n\r\n\r");  
}
/*挂载文件系统*/
res = f_mount(NORFLASH,&fs);
if(res == RES_OK)
{
   UART0SendStr("mount filesystem successed!\n\r\n\r");
}
else
{
   UART0SendStr("mount filesystem failed!\n\r\n\r");  
}
/*格式化磁盘*/
UART0SendStr("正在格式化磁盘,请稍候...\n\r\n\r");
//res = f_mkfs(NORFLASH,1,4096);//4096:每簇占用字节数
res = f_mkfs(NORFLASH,0,4096);//4096:每簇占用字节数
if(res == RES_OK)
{
UART0SendStr("format filesystem successed!\n\r");
 
}
else
{
   UART0SendStr("format filesystem failed!\n\r");
}
res = f_mount(NORFLASH,NULL);
/////////////////////////////////////////////////////////////////////////////////////////////////
res = f_mount(NORFLASH,&fs);
 
/*写文件测试*/
UART0SendStr("write file test......\n\r");
    res = f_open(&FileObject, "test.txt", FA_CREATE_ALWAYS | FA_WRITE);
    。。。
}
 
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版