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

调试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个回答
斜阳 回答时间:2015-11-30 10:55:14
感谢楼主分享
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);
    。。。
}
 
QQ897956996 回答时间:2012-10-19 11:14:37

回复:调试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);
    。。。
}
 
twmsun 回答时间:2012-11-15 16:26:21

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

支持 ,谢谢楼主,俺正在学习ST 407
yingge 回答时间:2012-12-7 15:19:08

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

骗人的,你的附件是 “基于STM32的USB程序开发笔记.rar”
别人发烂的东西!
longxiguang-256 回答时间:2012-12-17 11:22:34

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

感谢共享
lxh2626 回答时间:2012-12-17 13:43:11

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

东西和题目差的远着类
12下一页

所属标签

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