使用探索者SD卡例程的函数初始化成功后无法读数据

2019-07-20 04:22发布

如题,用原子哥的 sdio_sdcard.c 这个文件的初始化程序初始化SD卡成功,并返回了SD卡的属性后,却无法使用 SD_ReadDisk() 这个函数来读取数据。
debug后发现 SD_ReadDisk() 返回了0X07。
也就是 SD_START_BIT_ERR
寻找了之后发现有人也有这个问题,并给出了解决方法是
将SD卡初始化函数中的

if(errorstatus==SD_OK)errorstatus=SD_EnableWideBusOperation(SDIO_BusWide_4b);

参数 SDIO_BusWide_4b 改为 SDIO_BusWide_1b
修改后的确能够读出数据了

但是,4位总线宽总会比1位总线宽速度要快吧?
而且难以理解的是,用原子给的例程是能够用4位总线宽的模式的,但一放到我的程序里就不行。
怎么样才能用上4位的总线宽?

我的程序中关闭了所有的中断,而且只配置了系统时钟为144MHz,初始化了外置SRAM,W25Q128,24C02,LCD,USART1










友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-20 08:28
 精彩回答 2  元偷偷看……
ToARuGO
2楼-- · 2019-07-20 09:16
 精彩回答 2  元偷偷看……
ToARuGO
3楼-- · 2019-07-20 09:46
调整系统时钟。
或者直接使用默认的系统时钟配置。

一周热门 更多>