关于STM32407的SD卡实验的一些疑问,求原子哥答疑。

2019-07-21 01:45发布

我是最近才开始看关于SD卡的知识,看的是库函数版的 实验38 SD卡实验。

看到SD卡初始化函数 SD_Init()函数中的 SD_EnableWideBusOperation(SDIO_BusWide_4b)  这个函数,感觉有点问题,所以想请原子哥答疑一下。



首先 有个宏定义  #define SDIO_BusWide_4b                     ((uint32_t)0x00000800)


然后到EnableWideBusOperation(u32 WideMode) , 这个函数中去,这个函数调用了另外一个函数, 为 SDEnWideBus(WideMode),也就是在这个
函数里面,通过发送ACMD6这个命令来 改变SD卡的 数据总线的宽度,但是这个函数的 参数 是 u8型的,所以SDIO_BusWide_4b  这个参数最后
传递到 SDEnWideBus()这个函数的时候,已经变为0了, 会导致发送ACMD6这个命令时,是不会改变SD卡的数据总线的宽度的,这个看函数的代码
就可以知道,就是,执行完这个命令,SD卡的数据总线宽度还是1位, 但是在EnableWideBusOperation()这个函数中,在调用完SDEnWideBus()函数后,
检查SD卡没有错误后, 会将STM32F407的SDIO接口的数据总线 宽度 配置为4位, 这样子会和SD卡 不匹配呀,  但是后来的实验,通过串口可以读到
数据,所以,关于这个部分, 有点迷茫, 求原子哥解答一下。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-21 04:53
 精彩回答 2  元偷偷看……
bbssuiji
2楼-- · 2019-07-21 08:08
各位大神怎么看?
bbssuiji
3楼-- · 2019-07-21 09:24
回复【3楼】正点原子:
---------------------------------
好的, 我看一下 寄存器版本的。

一周热门 更多>