求助-使用CH376S读写U盘,创建文件后默认写入一个字节数据

使用CH376读写U盘,创建文件后,不进行任何操作,直接关闭文件,文件头部总会有一个字节的数据,调整过驱动延时参数,使用多个U盘(威刚*1,忆捷*1,金士顿*2,闪迪*2,PNY读卡器*1,SSK读卡器*1)测试过,不论如何修改代码,只有威刚的哪一个U盘没有问题,其他U盘都有问题


核心代码如下:


CH376FileCreate((PUINT8)"1.TXT");

CH376FileClose(TRUE);


发现有人遇到过,但是没有解决方案,

/bbs/thread-62916-1.html


请教有人遇到过么,是兼容性不好还是程序BUG,谢了,调了个把周都是这样

/*****************************************************************************************/

仔细看了下,原因已找到,CH376创建的文件默认大小为1,现在的问题是,可否直接通过修改

FAT_DIR_INFO把文件大小修改为0,我已经测试了下面的代码,但是不知是否有隐患,烦请贵公司

技术告知

1.png

/* 读取当前文件的目录信息FAT_DIR_INFO,将相关数据调到内存中 */

        res = CH376DirInfoRead();


        if(res == USB_INT_SUCCESS)

        {

          /* 文件大小,低8位在前 */

          buf[0] = (UINT8)0;

          buf[1] = (UINT8)0;

          buf[2] = (UINT8)0;

          buf[3] = (UINT8)0;

          CH376WriteOfsBlock(buf, STRUCT_OFFSET(FAT_DIR_INFO, DIR_FileSize), 4);

          /* 保存文件的目录信息 */

          res = CH376DirInfoSave();


可以修改目录项文件大小从1改成0。


                           

可以修改目录项文件大小从1改成0。

                       


那我这部分代码正确么,麻烦看一下,谢了,对FAT32不是很懂

/* 读取当前文件的目录信息FAT_DIR_INFO,将相关数据调到内存中 */

        res = CH376DirInfoRead();


        if(res == USB_INT_SUCCESS)

        {

          /* 文件大小,低8位在前 */

          buf[0] = (UINT8)0;

          buf[1] = (UINT8)0;

          buf[2] = (UINT8)0;

          buf[3] = (UINT8)0;

          CH376WriteOfsBlock(buf, STRUCT_OFFSET(FAT_DIR_INFO, DIR_FileSize), 4);

          /* 保存文件的目录信息 */

          res = CH376DirInfoSave();



如果使用串口和ch376s该如何更改或调用FAT_DIR_INFO


与通讯接口无关。


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