关于sdio初始化sd成功后,但是读取扇区失败的问题,请大家帮帮忙

2019-07-20 01:28发布

现在在用f411的板子,几天前想参考原子大哥的407例程修改一个sd的程序,把芯片对应的引脚修改了(因为我没有外部flash所以注释了初始化ccm内存池,没有用tft屏,关于屏的也去掉了,都改用串口打印了,下面是我的主函数),我的 [mw_shl_code=c,true]int main(void) { u8 key; u32 sd_size; u8 t=0; u8 *buf; buf=mymalloc(0,512); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2 delay_init(168); //初始化延时函数 uart_init(115200); //初始化串口波特率为115200 my_mem_init(SRAMIN); //初始化内部内存池 // my_mem_init(SRAMCCM); //初始化CCM内存池 LED_Init();//LED初始化 GPIO_WriteBit(GPIOA, GPIO_Pin_5, Bit_SET);//点亮LED小灯 while(SD_Init())//检测不到SD卡 { printf("SD Card Error!"); delay_ms(500); printf("Please Check! "); delay_ms(500); } show_sdcard_info(); //打印SD卡相关信息 printf("SD Card OK "); while(SD_ReadDisk(buf,0,1)); //读取0扇区的内容 printf("SECTOR 0 DATA: "); for(sd_size=0;sd_size<100;sd_size++)printf("%x ",buf[sd_size]);//打印0扇区数据 printf(" DATA ENDED "); while(1); } [/mw_shl_code] 初始化sd卡也成功了

这是用串口打印出来的sd卡信息,可是读扇区却出了问题,debug发现是程序在这里进行判断后返回,
为什么接收起始位会错误呢?小弟是个新手.........请大侠们帮帮忙,后来在发送发送CMD17后sdio寄存器STBITERR位就发生了变化,可是还是不知道什么原因,已经在这里卡了好多天了,希望您能帮帮忙,非常感谢!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。