打印

stc12c5a60s2读写sd失败

[复制链接]
1672|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
william228|  楼主 | 2012-11-11 20:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自己做的pcb板。用stc12c5a60s2  I/O口推挽输出。采用电阻分压。
SD卡套上用电表测量3.3v电平正确。
但是读出的数据总是0xff
unsigned char SD_spi_read(void)
{
        UART_Send_Str("b");//测试用
        SD_SO = 1;

        SD_SCL = 1;
        if (is_init)        delay(DELAY_TIME);
        SD_SCL = 0;
        if (is_init)        delay(DELAY_TIME);
        _dat7 = SD_SO;

        SD_SCL = 1;
        if (is_init)        delay(DELAY_TIME);
        SD_SCL = 0;
        if (is_init)        delay(DELAY_TIME);
        _dat6 = SD_SO;

        SD_SCL = 1;
        if (is_init)        delay(DELAY_TIME);
        SD_SCL = 0;
        if (is_init)        delay(DELAY_TIME);
        _dat5 = SD_SO;

        SD_SCL = 1;
        if (is_init)        delay(DELAY_TIME);
        SD_SCL = 0;
        if (is_init)        delay(DELAY_TIME);
        _dat4 = SD_SO;

        SD_SCL = 1;
        if (is_init)        delay(DELAY_TIME);
        SD_SCL = 0;
        if (is_init)        delay(DELAY_TIME);
        _dat3 = SD_SO;

        SD_SCL = 1;
        if (is_init)        delay(DELAY_TIME);
        SD_SCL = 0;
        if (is_init)        delay(DELAY_TIME);
        _dat2 = SD_SO;

        SD_SCL = 1;
        if (is_init)        delay(DELAY_TIME);
        SD_SCL = 0;
        if (is_init)        delay(DELAY_TIME);
        _dat1 = SD_SO;

        SD_SCL = 1;
        if (is_init)        delay(DELAY_TIME);
        SD_SCL = 0;
        if (is_init)        delay(DELAY_TIME);
        _dat0 = SD_SO;

        UART_Send_Byte(_dat);//通过串口查看总是0xFF
        return _dat;
}

相关帖子

沙发
ballack_linux| | 2013-8-8 19:37 | 只看该作者
你要先确保初始化是正确的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

152

帖子

1

粉丝