ch376操作SD卡問題

基于ch376的U盤我已經(jīng)都調(diào)試通了 但是SD卡始終沒有弄好 問題如下: s = CH376DiskMount( ); /* 初始化磁盤并測試磁盤是否就緒 */ s始終是130,即ERR_DISK_DISCON /* 檢測到斷開,重新檢測并計時 */ 不知道為什么?

我的接線是: SD_CK ------------ SCLK SD_DO ------------ MOSI SD_DI ------------ MISO SD_CS直接接GND

SD卡座3.3V供電

我的SD卡是4G的

請問大神是什么問題?跪謝了、、、

我的接線是: SD_CK ------------ SCLK SD_DO ------------ MOSI SD_DI ------------ MISO SD_CS直接接GND 你這個接線是CH376和SD卡的接線?還是單片機和CH376接線?無論哪種接法SD_CS都不能接地。


我將SD_CS ------------ CS 但是 for ( i = 0; i < 100; i ++ ) { /* 最長等待時間,100*50mS */ usleep( 1000*50 ); printf( "Ready ?\n" ); s = CH376DiskMount( ); /* 初始化磁盤并測試磁盤是否就緒 */ printf("s=%d\n", s); if ( s == USB_INT_SUCCESS ) break; /* 準備好 */ else if ( s == ERR_DISK_DISCON ) break; /* 檢測到斷開,重新檢測并計時 */ if ( CH376GetDiskStatus( ) >= DEF_DISK_MOUNTED && i >= 5 ) break; /* 有的U盤總是返回未準備好,不過可以忽略,只要其建立連接MOUNTED且嘗試5*50mS */ } 打印出的s如下: s=81 Ready ? s=20 我知道 20是對的 表示USB_INT_SUCCESS 但是后面讀出的SD設(shè)備廠商 SD卡容量都是錯的或者亂碼 請問是怎么回事呢?


補充下: printf( "DiskQuery: " ); /* 檢查U盤或者SD卡的剩余空間 */ s = CH376DiskQuery((PUINT32)buf); /* 查詢磁盤剩余空間信息,扇區(qū)數(shù) */ printf("s=%02x \n",(unsigned short)s ); printf( "free cap = %ld MB\n", *(PUINT32)buf / ( 1000000 / DEF_SECTOR_SIZE ) );

i = CH376ReadBlock( buf ); /* 如果需要,可以讀取數(shù)據(jù)塊CH376_CMD_DATA.DiskMountInq,返回長度 */ if ( i == sizeof( INQUIRY_DATA ) ) { /* U盤的廠商和產(chǎn)品信息 */ buf[ i ] = 0; printf( "UdiskInfo: %s\n", ((P_INQUIRY_DATA)buf) -> VendorIdStr ); }

打印結(jié)果: DiskQuery: s=1f free cap = 0 MB UdiskInfo: ."8?J!D$7


首先,三樓的第一個s應(yīng)該是設(shè)置模式返回值吧。確保模式設(shè)置為3,之后應(yīng)該是檢測SD卡連接和CH376DiskMount。確保一次通過并且返回值為0x14。然后你先調(diào)用一下 i = CH376ReadBlock( buf ); /* 如果需要,可以讀取數(shù)據(jù)塊CH376_CMD_DATA.DiskMountInq,返回長度 */ if ( i == sizeof( INQUIRY_DATA ) ) { /* U盤的廠商和產(chǎn)品信息 */ buf[ i ] = 0; printf( "UdiskInfo: %s\n", ((P_INQUIRY_DATA)buf) -> VendorIdStr ); } 看一下i的值?


我測試了 i=36,不知還有哪里需要改嗎?


是sd卡座壞了 換個卡座就好了


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频