实验例程中的SD卡实验中把SPI1口改为SPI2口后卡初始化失败是为什么呢?

2019-07-21 03:01发布

原子哥及各位大侠帮我看一下,我利用了SD卡实验例程中的spi.c  spi.h  mmc_sd.c  mmc_sd.h几个文件,其余的都是自己写的,那几个源文件和头文件中我稍稍进行了修改,因为我用的是库,我用SPI1的时候都很正常,但是改到SPI2的时候就不行了,初始化的时候总是失败,不知道大家可不可以帮我看看是什么原因呢;
还有,你的程序中的SPI1的时钟分频是直接操作寄存器做的,但是我改成库函数的时候也不行了,初始化失败了,也不知道为什么;
后来我在改成SPI2口的时候我就直接在mmc_sd.c这个源文件中直接用库函数写时钟的分频,spi.c源文件中时钟分频函数我全给注释掉了;
但是调SPI2口的时候总是不能,我把我改后的工程文件发一个附件,希望大家帮忙看看,改一下,谢谢啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
25条回答
baiydcwy
1楼-- · 2019-07-21 22:37
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-21 23:02
 精彩回答 2  元偷偷看……
muc520
3楼-- · 2019-07-22 03:31

看看我修改的吧   曾经也是用在SD卡上面的   程序是OK的!

正点原子
4楼-- · 2019-07-22 06:33
貌似楼主的片选弄错了。
 
baiydcwy
5楼-- · 2019-07-22 07:16
忘了说明一下了,STM32的SPI口的片选搞的不是太明白,所以就直接没有用这个片选,我的卡片选直接接地的,所以有关片选的程序是不起作用的,这种做法在SPI1中用的都蛮正常,所以我觉得不像是片选的问题。硬件是我觉得也没有什么问题,我用万用表检查了好几遍,因为我做的转接板,做了两个,第一个是插在SPI1上面的,第二个板是插在SPI2上的板,然后将第一个板插在第二个板上,PA4,PA5,PA6,PA7与它相对应的是PB12,PB13,PB14,PB15
正点原子
6楼-- · 2019-07-22 10:46
回复【12楼】baiydcwy:
---------------------------------
你用的什么芯片?STM32F103RBT6么?

一周热门 更多>