[求助]ch376与sd卡通讯问题

ch376与sd卡都已经初始化完成,主程序用的是EXAM7,创建文件时出现了错误,4G卡错误1F,128M卡错误A1。sd卡及ch376电压为3.4V,sd卡我用的是一个模块,地线我都拉出3条了 ,该怎么办呢? 感谢了!

文件名要用大写8+3的格式。否则肯定无法创建文件。


程序中文件名是大写8+3的格式吧 换下面的也一样错误。

串口返回: create file... Error: 1F

printf( "create file... \n" ); s = CH376FileCreate( "/ME_ADC.TXT" ); mStopIfError( s ); for ( m = 0; m < 100; m ++ ) buf[m] = 0x35; for ( m = 0; m < 180; m ++ ) { s = CH376ByteWrite( buf, 100, NULL ); /* 以字节为单位向文件写入数据 */ mStopIfError( s ); } s = CH376FileClose( TRUE ); /* 关闭文件,自动计算文件长度,以字节为单位写文件,建议让程序库关闭文件以便自动更新文件长度 */ printf( "close file \n" ); mDelaymS( 200 );


首先先确认一下,你的SD卡初始化有没有通过? 操作SD卡时用的是模式3. 如果初始化成功,参考下面的程序,把卡的相关信息读取出来看看。 for ( s = 0; s < 10; s ++ ) { /* 最长等待时间,10*50mS */ mDelaymS( 50 ); printf( "Ready ?\n" ); if ( CH376DiskMount( ) == USB_INT_SUCCESS ) break; /* 初始化磁盘并测试磁盘是否就绪 */ } s = CH376ReadBlock( buf ); /* 如果需要,可以读取数据块CH376_CMD_DATA.DiskMountInq,返回长度 */ if ( s == sizeof( INQUIRY_DATA ) ) { /* U盘的厂商和产品信息 */ buf[ s ] = 0; printf( "UdiskInfo: %s\n", ((P_INQUIRY_DATA)buf) -> VendorIdStr ); }


你好,我试了下。 结果: Wait init SD... Ready ? UdiskInfo: 侼G(d7h勄@礋T?'5


读出卡的信息都是乱码,还各式各样,是不是sd卡没有初始化成功?


好像你的卡初始化没有成功, 查一下硬件连接


只有登录才能回复,可以选择微信账号登录