CH376S

我在SetFileName和FileOpen()的时候遇到了问题。前面从获取版本到初始化DiskMount都没有问题。想问下,打开根目录的文件不需要先单独打开根目录吧。另外在设置文件名称的时候有什么需要注意的。我的函数模块主体如下

void CH376S_Set_File_Name(uint8_t *pName)//pName = "/123.TXT\0"

{

  uint8_t c;

 ......

 WriteSPI_Data(CH376_SET_FILE_NAME);

  c = *pName;

  WriteSPI_Data(c);

  while(c)

  {

    pName++;

    c = *pName;

    

    if(c == 0x2f || c == 0x5c)//'/' OR '\'

    {

      c = 0;

    }

    WriteSPI_Data(c);

  }

.....

}

麻烦大神指教下,谢谢!

打开根目录的文件不需要先单独打开根目录,打开“/文件\0”就可以。

SetFileName和FileOpen()具体什么错误,FileOpen()返回值多少?

CH376S版本号多少?


CH376S版本读出的数据是0x41。FileOpen经常返回0x22,即使是偶尔返回0x14也是Get_File_Size 为 0.


对了,有几次出现错误0x42(ERR_MISS_FILE).这是什么原因呢?


可以使用FILE_SYS.H提供的CH376FileOpen和CH376SetFileName操作一下。DEF_IC_V43_U不需定义。


CH376FileOpen里面已经包含了CH376SetFileName,所以直接调用CH376FileOpen()就可以了,是吗?我现在就是这个思路。请问有什么需要注意的呢?


为兼容低版本,设置文件名和打开文件都有DEF_IC_V43_U恒定义部分 。所以建议用FILE_SYS.H


 

tel:025-52638376

mail:gj@wch.cn


同样 setName openflie 总返回0  有大神支招吗


您好,我请教一下,

 Write_CH376S_cmd(0x2F);puts1("/WPS");Write_CH376S_cmd(0x0D);Write_CH376S_cmd(0x64);Write_CH376S_data(0x00);

Write_CH376S_data(0x00);

 Write_CH376S_data(0x00);

 Write_CH376S_data(0x00);

 Write_CH376S_cmd(0x40);

 Write_CH376S_cmd(0x22);

 delayms1(100);

文件夹这么写不对么。什么反应都没有,没有0x14中断,没有0x42什么都没有



符合FAT文件系统规范的目录创建还是稍微复杂点的,建议使用FILESYS.C中的函数“UINT8    CH376DirCreatePath( PUINT8 PathName )”实现文件夹的创建。

最简单的创建就是两条命令:CMD10_SET_FILE_NAME(无中断)、CMD0H_DIR_CREATE(有中断)即可。但是这样创建出来的不一定符合规范。

还有注意区分一下 cmd(命令)和dat(数据)。




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