CH376和USB的初始化都能正常完成。進(jìn)行文件操作的程序如下: buf[] = {"Today is monday.\0"}; CH376FileCreat("/TEST.TXT"); CH3376FileOpen("/TEST.TXT"); CH3376ByteWrite(buf,20,NULL); //這個(gè)地方,無(wú)論請(qǐng)求的寫(xiě)入字節(jié)為多少都寫(xiě)不進(jìn)數(shù)據(jù),之前在這里咨詢你們,說(shuō)是只要大于我所需要的buf就行。 CH3376FileClose(TRUE); 以上四個(gè)函數(shù)的返回值都是14,但是就是無(wú)法向文件寫(xiě)入buf里面的數(shù)據(jù),請(qǐng)問(wèn)這是為什么?
可能是U盤(pán)沒(méi)有把數(shù)據(jù)更新到FLASH里面去,你可以在寫(xiě)完數(shù)據(jù)后,再重新打開(kāi)一個(gè)存在或者不存在的文件,或者再重新創(chuàng)建一個(gè)文件試試
沒(méi)太懂您的意思。打開(kāi)或者創(chuàng)建一個(gè)文件,有什么意義? 這是U盤(pán)問(wèn)題還是我程序問(wèn)題呢?程序這一寫(xiě)是對(duì)的嗎?
您可以再創(chuàng)建一個(gè)文件試試,看前面寫(xiě)的數(shù)據(jù)是否寫(xiě)到文件中去, 這樣做的意義在于使U盤(pán)吧寫(xiě)入的數(shù)據(jù)更新到U盤(pán)FLASH中去
我試過(guò)了,新建了一個(gè)其他的文件,但是原文件依然沒(méi)有寫(xiě)入數(shù)據(jù)。這是為什么?CH3376ByteWrite函數(shù)的返回值在14和1e之間來(lái)回跳變,是在寫(xiě)數(shù)據(jù)的意思嗎?
額。又試了下,把CH3376ByteWrite(buf,20,NULL); 這句話里面的20改成18就能正確寫(xiě)入了,也就是我請(qǐng)求的buf的大小必須嚴(yán)格的等于我所需要寫(xiě)入的字節(jié)數(shù),這跟我之前跟您咨詢的結(jié)果不太一樣,您當(dāng)時(shí)說(shuō)請(qǐng)求的buf大小只要大于我所需寫(xiě)入的字節(jié)數(shù)就ok,在我這里怎么就不行了呢,是我的程序?qū)懛ㄥe(cuò)了嗎?按照現(xiàn)在程序的樣子,在實(shí)時(shí)數(shù)據(jù)存取過(guò)程中會(huì)造成很多麻煩,請(qǐng)問(wèn)有什么解決辦法嗎?
buf的大小確實(shí)是大于您要寫(xiě)的字節(jié)數(shù)就可以了,比如buf大小為30,您要寫(xiě)20個(gè)字節(jié),那么CH3376ByteWrite(buf,20,NULL); 會(huì)把buf前20個(gè)字節(jié)寫(xiě)入。如果返回1e,那么說(shuō)明,還有數(shù)據(jù)要寫(xiě),可能就是您中斷超時(shí)等的時(shí)間太短,您可以把等中斷的超時(shí)給去掉