单片机通过CH375读写U盘文件的问题解答

我新建了一个Excle文件。 s = CH376FileCreate( "EXCLE.XLS" ); strcpy( buf, "This is 演示数据0\x9" ); s = CH376ByteWrite( buf, strlen(buf), NULL ); strcpy( buf, "123456\x9" ); s = CH376ByteWrite( buf, strlen(buf), NULL ); strcpy( buf, "789\x9" ); s = CH376ByteWrite( buf, strlen(buf), NULL );

后缀是.XLS 在电脑中可以打开。

但是在电脑打开后,修改数据后,保存的时候就会出现一个提示框 说“文件可能含有与文本文件(制表符分隔)不兼容的功能。是否保持工作簿的这种格式?”

这是怎么一回事啊。好像跟在电脑里建一个.XLS的文件不同的???


仅后缀名是XLS,还不能表示这个文件是XLS文件,在写入数据的时候,必须按照XLS的格式写,在PC上才能打开,仅写入上述数据还不够,CH376并不分析文件的格式,对数据不做任何处理。


.XLS 这种文件有自己的数据格式,你必须按照它的格式写数据,才可以用Excel打开,CH376只是一个接口芯片,只负责往U盘写数据,具体的数据格式是单片机端处理的。


XLS的格式是怎么样的啊??


这个需要您自己去找资料了,我们没有相关资料可提供。


你们除了文本的格式之外还有什么格式的文件可以提供的啊


文本文件是最简单的一种文件格式,可以认为没有文件格式,直接写ASIIC就可以了 前面已经说了,我们的芯片只负责传输数据,不对数据作任何处理,因此没有具体文件格式可提供


哦 这样啊 我知道了,文本文件做出来了 现在就想做Excle文件 这样好编辑数据


新建一个文件夹。在电脑上看属性的时候,怎么没有创建时间的?

s = CH376DirCreate( "/YEAR102B" ); // 新建目录(文件夹) s = CH376FileClose( TRUE );


创建文件时不支持创建时间,需要自行修改,下载CH376EVT.ZIP,参考EXAM10


CH375中内置的固件程序到底是什么 USB类 (是 MSD类??) 能够用 CH375 和SD卡 联合起来做成 大容量存储类吗?

该公司 有没有直接内置大容量存储类的固件芯片啊?


1、CH375内置了与PC通讯的USB设备固件和操作U盘的USB主机固件 2、可以模拟成一个大容量存储设备,CH375只是一个接口芯片,至于存储器是SD卡还是Flash都无所谓,只要单片机能够操作就可以了 3、CH331直接内置大容量存储类的固件,外部存储器是24CXXX系列存储器,容量比较小,网上有资料


s = CH376DirCreate( "/YEAR102B" ); // 新建目录(文件夹) 例子给出的新建文件夹是这样的。

然后我现在要建立文件夹或者文件,文件夹和文件的名字是通过几个寄存器的数值来命名的。 例如:a=0x09,b=0x12,c=0x31; 建立的文件夹名字就为091231

请问怎么实现啊


这个只要对a,b,c译码就可以了阿,例如: UINT8 mFileName[ 8 + 3 + 1 ]; UINT8 i;

mFileName[ 0 ] = '/';

i = a >> 4; i = i <= 9 ? i + '0' : ( i - A ) + 'A'; mFileName[ 1 ] = i;

i = a & 0x0F; i = i <= 9 ? i + '0' : ( i - A ) + 'A'; mFileName[ 2 ] = i;

i = b >> 4; i = i <= 9 ? i + '0' : ( i - A ) + 'A'; mFileName[ 3 ] = i;

i = b & 0x0F; i = i <= 9 ? i + '0' : ( i - A ) + 'A'; mFileName[ 4 ] = i;

i = c >> 4; i = i <= 9 ? i + '0' : ( i - A ) + 'A'; mFileName[ 5 ] = i;

i = c & 0x0F; i = i <= 9 ? i + '0' : ( i - A ) + 'A'; mFileName[ 6 ] = i;

mFileName[ 7 ] = 0; /* 结束符 */

s = CH376DirCreate( mFileName ); // 新建目录(文件夹)


谢谢SCM


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