[font=新宋体][size=4]1,按照例子中的方法:
strcpy( (char *)mCmdParam.Create.mPathName, "TEST.TXT" ); CH375FileCreate( ); pCodeStr = (UINT8 *)"TEST........"; while( 1 ) { for ( i=0; i c = *pCodeStr; mCmdParam.ByteWrite.mByteBuffer[i] = c; if ( c == 0 ) break; pCodeStr++; } if ( i == 0 ) break; mCmdParam.ByteWrite.mByteCount = i; i = CH375ByteWrite( ); } mCmdParam.Close.mUpdateLen = 1; CH375FileClose( );
如果这一句:pCodeStr = (UINT8 *)"TEST........"; 中字符串比较长,就会出现错误,这是因为M16的RAM空间不够导致的吗?那么我想用字节方式写入比较长的数据应如何实现最好?
2,我先用CH375ByteRead();读出某文件的数据,再在新建文件的时候把读出的数据赋给ByteWrite的缓冲区,然后把数据写入新建的文件,这样也会出错,是因为我的磁盘数据缓冲区太小吗?我设置的磁盘数据缓冲去为512,要是我用RAM大点的单片机,把磁盘数据缓冲区设置大些,那么还是用这种方法会有问题吗?
3,#if DISK_BASE_BUF_LEN == 0 pDISK_BASE_BUF = &my_buffer[0];
/* 不在.H文件中定义CH375的专用缓冲区,而是用缓冲区指针指向其它应用程序的缓冲区便于合用以节约RAM */
#endif
这个具体怎么用啊,我的理解是自己在应用程序中先声明DISK_BASE_BUF_LEN == 0 然后定义my_buffer[],可试过是不行的!
[/size][/font]