CH376和USB的初始化都能正常完成。进行文件操作的程序如下: buf[] = {"Today is monday.\0"}; CH376FileCreat("/TEST.TXT"); CH3376FileOpen("/TEST.TXT"); CH3376ByteWrite(buf,20,NULL); //这个地方,无论请求的写入字节为多少都写不进数据,之前在这里咨询你们,说是只要大于我所需要的buf就行。 CH3376FileClose(TRUE); 以上四个函数的返回值都是14,但是就是无法向文件写入buf里面的数据,请问这是为什么?
可能是U盘没有把数据更新到FLASH里面去,你可以在写完数据后,再重新打开一个存在或者不存在的文件,或者再重新创建一个文件试试
没太懂您的意思。打开或者创建一个文件,有什么意义? 这是U盘问题还是我程序问题呢?程序这一写是对的吗?
您可以再创建一个文件试试,看前面写的数据是否写到文件中去, 这样做的意义在于使U盘吧写入的数据更新到U盘FLASH中去
我试过了,新建了一个其他的文件,但是原文件依然没有写入数据。这是为什么?CH3376ByteWrite函数的返回值在14和1e之间来回跳变,是在写数据的意思吗?
额。又试了下,把CH3376ByteWrite(buf,20,NULL); 这句话里面的20改成18就能正确写入了,也就是我请求的buf的大小必须严格的等于我所需要写入的字节数,这跟我之前跟您咨询的结果不太一样,您当时说请求的buf大小只要大于我所需写入的字节数就ok,在我这里怎么就不行了呢,是我的程序写法错了吗?按照现在程序的样子,在实时数据存取过程中会造成很多麻烦,请问有什么解决办法吗?
buf的大小确实是大于您要写的字节数就可以了,比如buf大小为30,您要写20个字节,那么CH3376ByteWrite(buf,20,NULL); 会把buf前20个字节写入。如果返回1e,那么说明,还有数据要写,可能就是您中断超时等的时间太短,您可以把等中断的超时给去掉