程序如下,我的程序走到挂载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]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>