OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6260|回复: 5

原子哥,求助!将你的F407的FATS程序移植到F411上运行不了

[复制链接]

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2016-1-8
在线时间
17 小时
发表于 2016-1-12 18:51:19 | 显示全部楼层 |阅读模式
10金钱
程序如下,我的程序走到挂载SD卡那就死掉了,DeBug后发现程序在diskio.c文件中的disk read函数下的while里进行死循环出不来了,SD_ReadDisk(buff,sector,count);这个函数返回值一直是7,这个7对应的是SD_START_BIT_ERR ,接收起始位错误,那具体应该怎么改才能搞好?我SD卡的初始化是正确的show_sdcard_info();也能把信息发到串口调试助手上。
#include "ff.h"
#include "malloc.h"
#include "sdio_sdcard.h"
#include "exfuns.h"
#include "fattester.h"
#include "delay.h"
#include "led.h"
#include "usart.h"
#include "stm32f4xx.h"
#include "diskio.h"
int main(void)
{u8 res=0;
My_LED_Init();
delay_init(104);
USART2_Init(115200);
my_mem_init(SRAMIN);
        //my_mem_init(SRAMCCM);(我把这个函数注释掉了,不注释程序跑到这就死了)
        if(SD_Init()==0)
        {printf("\r\n SD卡初始化成功 \r\n");
        }else printf(" SD卡初始化失败\r\n");
show_sdcard_info();
        res=exfuns_init();
        if(res==0)
        {printf(" FATFS内存分配成功\r\n");
                res=mf_mount("0:",1);
                if(res==0)
                {
                printf(" SD卡挂载成功\r\n");
                       
                        }else printf(" SD卡挂载失败\r\n");
                        }else printf(" FATFS内存分配失败\r\n");printf(" 错误代码:%d\r\n",res);
        mf_scan_files("0:");
        mf_open("0:/qq.txt",FA_OPEN_ALWAYS|FA_WRITE);
        mf_lseek(0);
        mf_close();
while(1)
{

LED_REV;
delay_ms(350);
LED_REV;
delay_ms(350);

    }
}
       
       
       
        [/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

呼,问题终于解决了,把SD_Init函数里的errorstatus=SD_EnableWideBusOperation(SDIO_BusWide_4b);改为errorstatus=SD_EnableWideBusOperation(SDIO_BusWide_1b);就能成功挂载SD卡,虽然读取速度变慢了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2016-1-8
在线时间
17 小时
 楼主| 发表于 2016-1-12 18:51:20 | 显示全部楼层
呼,问题终于解决了,把SD_Init函数里的errorstatus=SD_EnableWideBusOperation(SDIO_BusWide_4b);改为errorstatus=SD_EnableWideBusOperation(SDIO_BusWide_1b);就能成功挂载SD卡,虽然读取速度变慢了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-1-12 22:47:27 | 显示全部楼层
你的SDIO驱动有问题吧.
回复

使用道具 举报

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2016-1-8
在线时间
17 小时
 楼主| 发表于 2016-1-13 08:47:56 | 显示全部楼层
用的是你的程序,引脚特性一个也没改不应该有问题啊
回复

使用道具 举报

20

主题

468

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
1679
金钱
1679
注册时间
2014-2-25
在线时间
229 小时
发表于 2016-1-21 17:09:47 | 显示全部楼层
楼主这么改了之后SDIO的速度就慢了吧?
回复

使用道具 举报

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2016-1-8
在线时间
17 小时
 楼主| 发表于 2016-1-21 18:29:16 | 显示全部楼层
对,变慢之后SD卡就能挂载上去了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 09:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表