CH376怎样控制SD卡

CH376里面没有SD卡通讯协议,请问使用CH376怎样去控制SD的操作呢

SD看的协议已经集成到芯片内部去了,你不需要了解SD卡协议。操作的时候只需要设置CH376的模式为0X03。之后按照U盘的方式操作SD卡就可以了。


CH376的datasheet中CMD_DISK_WR_GO和CMD_DISK_RD_GO两条指令不支持SD卡,请问需要怎样进行SD卡的读扇区和写扇区操作呢


SD卡模式不支持扇区读写方式。


请问一下我用写字节和读字节的方式控制U盘的操作,不知道怎么出现写错误(write error)和读错误(read error),程序我贴在下面啦,麻烦指点啊! uchar ch376_write_reqblock(uchar *pBuf) { uchar s,l; ch376_write_cmd(CMD_WR_REQ_DATA); s=l=ch376_read_data();//请求写入的字节流长度 if(l){ do{ ch376_write_data(*pBuf); pBuf++; }while(l--); } return s; }

uchar ch376_read_block(uchar *pBuf) { uchar s,l; ch376_write_cmd(CMD_RD_USB_DATA0); s=l=ch376_read_data(); if(l) { do { *pBuf=ch376_read_data(); pBuf++; }while(l--); } return s; }

uchar ch376_write_byte(uint count,uchar *pBuf) { uchar status,length; ch376_write_cmd(CMD_BYTE_WRITE );//以字节为单位向当前位置写入数据块 ch376_write_data((uchar)count); ch376_write_data((uchar)(count>>8));//写入16位的字节数 while(1) { status=ch376_wait_interrupt(); if(status!=USB_INT_DISK_WRITE) { T_Com("write error... \n"); return status; } else { T_Com("write data... \n"); length=ch376_write_reqblock(pBuf); ch376_write_cmd(CMD_DISK_WR_GO); pBuf+=length; } status=ch376_wait_interrupt(); if(status==USB_INT_SUCCESS) { T_Com("write byte success... \n"); return 0; } else { T_Com("write byte failure... \n"); return status; } } } uchar ch376_read_byte(uint count,uchar *pBuf) { uchar status,length; ch376_write_cmd(CMD_BYTE_READ);//以字节为单位向当前位置读入数据块 ch376_write_data((uchar)count); ch376_write_data((uchar)(count>>8));//写入16位的字节数 while(1) { status=ch376_wait_interrupt(); if(status!=USB_INT_DISK_READ) { T_Com("read error... \n"); return status;//读取产生错误 } else { T_Com("read data... \n"); length=ch376_read_block(pBuf); pBuf+=length; ch376_write_cmd(CMD_DISK_RD_GO); } if(status!=USB_INT_SUCCESS) { T_Com("read byte failure... \n"); return status;//读取产生错误 } else { T_Com("read byte success...\n"); return 0; } } }


麻烦你用我司的CH376FILESYS.C的程序。自己写的话问题无法查到


我是根据贵公司那个CH376FILESYS.C的程序写的啊,只是稍微有点不同


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