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

2019-07-20 23:55发布

程序如下,我的程序走到挂载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(" SD卡初始化成功 ");
        }else printf(" SD卡初始化失败 ");
show_sdcard_info();
        res=exfuns_init();
        if(res==0)
        {printf(" FATFS内存分配成功 ");
                res=mf_mount("0:",1);
                if(res==0)
                {
                printf(" SD卡挂载成功 ");
                       
                        }else printf(" SD卡挂载失败 ");
                        }else printf(" FATFS内存分配失败 ");printf(" 错误代码:%d ",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]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。