stc12c5a60s2读写SD失败
本帖最后由 william_rain 于 2012-11-11 20:59 编辑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;
}找到问题了,要SD_SO = P1^3配置为高阻 {:victory:}{:victory:}{:victory:}{:victory:} 用硬件的更快
页:
[1]