永发信息网

SD卡提示未初始化

答案:2  悬赏:80  手机版
解决时间 2021-02-06 06:35
以前用的好好的,突然就读不到照片了,再开机就提示说未初始化,我用读卡器读,都读不到,显示没插入磁盘,我还想找回原来的照片啊,,,,不想格式化了,但是读不到盘就不能使用回复软件,哪个高人帮帮我啊!!!!
最佳答案
可以使用恢复软件恢复,如果不行的话就是SD卡坏了!
全部回答
原因自己去找,提醒一下sd卡未初始化时,spi通信clk频率一定要低。 好象最高不超过400khz #include "..\inc\includes.h" #include "new_sd.h" sbit c_spi_cs = p2^4; //sht-mp3 config //set mmc_chip_select to high (mmc/sd-card invalid) #define sd_disable() c_spi_cs = 1 //set mmc_chip_select to low (mmc/sd-card active) #define sd_enable() c_spi_cs = 0 sbit c_spi_si = p1^5; sbit c_spi_so = p1^6; sbit c_spi_clk = p1^7; sbit c_sd_in = p2^7; sbit c_sd_wp = p2^6; sbit c_sd_power = p2^3; #define macro_set_si_high() c_spi_si = 1 #define macro_set_si_low() c_spi_si = 0 #define macro_set_clk_high() c_spi_clk = 1 #define macro_set_clk_low() c_spi_clk = 0 //bool bspiclk_lowspeed; static void sd_poweron(void) { c_sd_power = 0; } //extern uint8 buffer[512]; uint8 sd_spi_readbyte(void); void sd_spi_writebyte(uint8 ucsenddata); //#define spi_readbyte() sd_spi_readbyte() //#define spi_transferbyte(x) sd_spi_writebyte(x) static uint8 spi_readbyte(void) { uchar ucreaddata; uchar uccount; ucreaddata = 0; macro_set_si_high(); for(uccount=0; uccount<8; uccount++) { ucreaddata <<= 1; //降低时钟频率 macro_set_clk_low(); //降低时钟频率 // if(bspiclk_lowspeed) // { // delay_100us(); // } macro_set_clk_high(); // if(bspiclk_lowspeed) // { // delay_100us(); // } if(c_spi_so) { ucreaddata |= 0x01; } } return(ucreaddata); // spdr = 0xff; // while (!(spsr & 0x80)); // return spdr; } static void spi_transferbyte(uint8 ucsenddata) { uchar uccount; uchar ucmaskcode; ucmaskcode = 0x80; for(uccount=0; uccount<8; uccount++) { macro_set_clk_low(); if(ucmaskcode & ucsenddata) { macro_set_si_high(); } else { macro_set_si_low(); } //降低时钟频率 // if(bspiclk_lowspeed) // { // delay_100us(); // } macro_set_clk_high(); ucmaskcode >>= 1; //降低时钟频率 // if(bspiclk_lowspeed) // { // delay_100us(); // } } //spdr=cmp1; //while(!(spsr&(1<
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯