C8051F124单片机通过CH375往U盘里面存数据,我现在的做法是先在U盘里建一个txt格式的文件,再把flash里的数据取出来一个字节一个字节往txt文件中写,但我发现这样做很慢,速度跟串口差不多,不知大家有没有什么别的好方法,比方说能不能不用txt格式的文件,请赐教,拜托啦!
1、速度与文件格式没有关系 2、想提高U盘读写速度,必须采用总线接口,以扇区方式读写,每次读写的扇区数越多越快 3、现在系统中影响速度的方面有:读Flash和写U盘,先独立验证这2个方面的速度分别是多少,确认速度瓶颈在哪一方
void USBwrite(INT8U hour) { INT8U i; INT16U len; CH375_PORT_INIT( ); mDelay1_2uS( ); mDelay1_2uS( );
len = sprintf( mCmdParam.ByteWrite.mByteBuffer, "%d\xd\xa", (UINT16)hour ); mCmdParam.ByteWrite.mByteCount = (unsigned char)len; i = CH375ByteWrite( ); mStopIfError( i ); Delay100us(); } 我现在采取的方法是从flash中读一个字节,然后将这个字节传给hour,再由USBwrite写入U盘,请问我是否可以一次多写一些字节进U盘,这样是否能提高速度,如果这样行的话,在我这个程序上怎么修改呢?是传一个数组进去吗?请赐教!多谢!
1、在2楼已经说了,要先分析出速度慢在哪里,才知道怎么去改 2、希望速度是多少?你的程序中,每次写一个hour,都要: CH375_PORT_INIT( ); mDelay1_2uS( ); mDelay1_2uS( ); Delay100us(); 这么多的延时,能不慢么? 3、建议你先单独测一下写U盘的速度,用假数据,不要读Flash,关于读写U盘,下载CH375EVT.ZIP,里面有例程程和说明文档,先熟悉一下
请问扇区操作的例程在哪个文件里?多谢啦!
一次写几个字节,即使是扇区方式速度也不会很快,不论是字节还是扇区,批量写速度是最快的。