我用CH376讀取U盤中的一個(gè)大文件(大小大于buf),循環(huán)讀寫時(shí)總出錯(cuò)! 按照所給例程每次讀寫都要打開一次文件,進(jìn)行讀寫,然后關(guān)閉文件。 我設(shè)置buf為128字節(jié),用ByteCount來(lái)定位,準(zhǔn)備是循環(huán)讀取。一次讀取128個(gè)字節(jié)之后處理完之后在讀取100個(gè)字節(jié),直到你文件讀取完。但是在循環(huán)進(jìn)行到第二次操作時(shí)總會(huì)在打開文件或讀寫函數(shù)處處錯(cuò)誤!?。∫簿褪钦f(shuō)只能進(jìn)行一次讀寫buf大小以內(nèi)的文件! 請(qǐng)問(wèn),這樣循環(huán)打開文件沒(méi)問(wèn)題嗎?如何進(jìn)行循環(huán)進(jìn)行讀寫操作?? 求解惑?。?!
文件只需要打開一次,后面循環(huán)的讀取就可以了。不需要每次都打開文件。還有你不加處理函數(shù)直接循環(huán)讀取2次看是否可以讀取。
恩。。??梢粤?。。。還有個(gè)問(wèn)題。。。ch376總是在上電時(shí)不能初始化成功需要多次復(fù)位才可以,這是什么問(wèn)題?這種不穩(wěn)定情況還出現(xiàn)在打開文件的時(shí)候。。。有時(shí)候需要多次復(fù)位或是在單步調(diào)試的時(shí)候會(huì)通過(guò)。。。
這個(gè)可能是上電之后需要50MS以上的延時(shí)之后才能初始化芯片。在50MS前的時(shí)間芯片處于復(fù)位狀態(tài)導(dǎo)致初始化無(wú)法通過(guò)。
不是這個(gè)延時(shí)的問(wèn)題,在mInitCH376Host()之前已經(jīng)有至少200ms的延時(shí)了,但是還是無(wú)法通過(guò)此函數(shù),只有在單步運(yùn)行的時(shí)候才可以。。。
那你全速運(yùn)行的時(shí)候測(cè)試命令有什么問(wèn)題嗎?如果全速運(yùn)行測(cè)試命令有問(wèn)題那可能是你的時(shí)序或者US級(jí)的延時(shí)不夠?qū)е碌摹?/p>
除了時(shí)序或延時(shí)不正??赡軐?dǎo)致錯(cuò)誤以外,還有其他原因嗎?
沒(méi)其他的原因了,仿真器可以而在硬件上面跑有問(wèn)題基本上都是上述的問(wèn)題。
啊。。。這樣啊。。。但是在全速運(yùn)行時(shí)376時(shí)常獲取不到中斷,程序會(huì)卡在Wait376Interrupt函數(shù)那!這人是什么原因?。???