不行了要崩潰了,希望大家可以給點(diǎn)詳細(xì)的解釋,多謝了! 我的375讀好用寫就是不行是怎么回事呢? 我用匯編編程,寫的流程是用write命令,輸入4字節(jié)扇區(qū)數(shù)(確認(rèn)U盤中有此扇區(qū)并且沒有被占用),1寫扇區(qū)數(shù),然后用wr_usb_data7命令,先輸入40h表示后續(xù)有64個字節(jié),然后陸續(xù)輸入了64個字節(jié)的數(shù)據(jù),然后用disk_wr_go命令把緩沖區(qū)數(shù)據(jù)寫入U盤,之后沒有繼續(xù)輸入數(shù)據(jù),沒有寫完一個扇區(qū),此時中斷代碼1E,數(shù)據(jù)待輸入。 查看數(shù)據(jù)就是寫不進(jìn)去,這是怎么回事呢?試過兩個U盤都不行。不是應(yīng)該寫進(jìn)去64個字節(jié)了么? 過程中執(zhí)行到write輸入5個數(shù)據(jù)進(jìn)去之后U盤燈就滅了,再也沒有亮,是不是寫進(jìn)去時候應(yīng)該閃一下阿? 請問最可能的原因是什么呢?讀寫信號都沒有問題,數(shù)據(jù)總線也沒有問題,真的要崩潰了,調(diào)了好久了……
對U盤的讀寫必須是一個扇區(qū)大?。ㄈ纾?12B),你寫完64B后,產(chǎn)生中斷:0x1E是正確的,此時你應(yīng)該再寫入64B數(shù)據(jù),直至寫完一個扇區(qū)大小。寫操作流程可網(wǎng)上下載CH375EVT.ZIP,參考CH375EV0.C
我的理解是,緩沖區(qū)只有64個字節(jié),所以才需要每次輸入64個字節(jié)之后中斷一次,而disk_wr_go命令用于將緩沖區(qū)的數(shù)據(jù)真正拷貝進(jìn)U盤然后清空緩沖區(qū)的數(shù)據(jù)繼續(xù)寫,是這個流程么? 如果這樣的話不是我寫一次64個字節(jié)就可確實(shí)寫進(jìn)U盤里面了么?還是說不管怎么樣寫都必須寫完一個扇區(qū)???如果是后一種情況那么請問真正寫進(jìn)U盤里的是什么命令呢?謝謝了
disk_wr_go命令確實(shí)是將64B數(shù)據(jù)發(fā)給U盤,但是U盤會把這64B數(shù)據(jù)進(jìn)行緩沖,等達(dá)到一定的數(shù)量(這個數(shù)量由U盤本身決定,但至少是一個扇區(qū)大小)后才會真正寫入FLASH。