OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4626|回复: 6

关于使用SPI读写SD卡遇到的问题

[复制链接]
回帖奖励 20 金钱 回复本帖可获得 10 金钱奖励! 每人限 1 次(中奖概率 50%)

1

主题

7

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2022-1-1
在线时间
11 小时
发表于 2023-4-14 10:29:18 | 显示全部楼层 |阅读模式
在使用SPI读写SD卡中遇到了程序卡死的问题,跟踪进去发现定位在SD卡初始化部分。

//初始化SD卡
u8 SD_Init(void)
{
    u8 r1;      // 存放SD卡的返回值
    u16 retry;  // 用来进行超时计数
    u8 buf[4];  
    u16 i;

    SD_SPI_Init();        //初始化IO
    SD_SPI_SpeedLow();    //设置到低速模式
    for(i=0;i<10;i++)SD_SPI_ReadWriteByte(0XFF);//发送最少74个脉冲
    retry=20;
    do
    {
      r1=SD_SendCmd(CMD0,0,0x95);//进入IDLE状态
    }while((r1!=0X01) && retry--);
    SD_Type=0;//默认无卡

.......


继续跟踪,发现SPI对SD卡发送命令前,有一个发送0xFF,需要等SD返回0xFF才开始发命令。

//选择sd卡,并且等待卡准备OK
//返回值:0,成功;1,失败;
u8 SD_Select(void)
{
    SD_CS=0;
    if(SD_WaitReady()==0)return 0;//等待成功
    SD_DisSelect();
    return 1;//等待失败
}


定位到具体程序是发送了0xFF以后,SD没有回复这个0xFF导致进入while死循环最终超时。
使用了示波器检测,能看到时钟信号和STM32发送至SD卡的高电平,但是SD卡回复STM32的信号一直没有变过。
请问各位可能是什么原因呢?



2.png
1.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2022-1-17
在线时间
14 小时
发表于 2023-5-29 21:02:34 | 显示全部楼层
楼主解决了吗 我也是卡在这里了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-4-21
在线时间
0 小时
发表于 2023-7-3 21:19:06 | 显示全部楼层
同卡在这里
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2020-4-21
在线时间
0 小时
发表于 2023-7-3 21:19:31 | 显示全部楼层
我也是在这里过不去
回复 支持 反对

使用道具 举报

2

主题

62

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
473
金钱
473
注册时间
2019-8-20
在线时间
147 小时
发表于 2023-7-4 10:12:37 | 显示全部楼层
1.确认卡的供电正常(别看着简单不注意这点)
2.确认卡SPI通信时CS正常选中与释放(别看着简单不注意这点)
3.确认卡初始化时SPI是真的低速小于400KHz(别看着简单不注意这点)
4.确认所用的卡支持SPI模式
想解决问题就该全面查找不放过任一细节
回复 支持 反对

使用道具 举报

42

主题

115

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
465
金钱
465
注册时间
2014-2-24
在线时间
99 小时
发表于 2023-7-4 10:27:59 | 显示全部楼层

回帖奖励 +10 金钱

连发3遍,判断
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2022-9-8
在线时间
3 小时
发表于 2023-7-18 20:08:35 | 显示全部楼层
楼主解决了吗?我也卡住了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 05:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表