现在在用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位就发生了变化,可是还是不知道什么原因,已经在这里卡了好多天了,希望您能帮帮忙,非常感谢!
---------------------------------
不还意思一直没回原子哥,因为一直没有结果,速度我试了很多次四线模式还是行不通,我改变的是这个SDIO_Clock的大小,不知0道对不对,
还有一个问题是,我用的是战舰开发板上的ov7670摄像头,也一直在调,可是我移植完程序后,摄像头初始化成功了,但是我把每一个像素通过串口打印出来发现数据都一样,自己焊了一个底座,摄像头我是插到底座上头的411板子通过底座和摄像头相连。
---------------------------------
我当初自己画的板子,也是用四线不行,后来我重新焊了一下sd卡座四线就没问题了,你首先要保证物理连接的正常。原子的程序是没问题的
一周热门 更多>