請(qǐng)教CH376扇區(qū)寫(xiě)的問(wèn)題

單片機(jī)再通過(guò)CMD_RD_USB_DATA0命令讀出參數(shù),獲取共8 個(gè)字節(jié)的返回結(jié)果:首字節(jié)是允許寫(xiě)入的扇區(qū)數(shù);后4 個(gè)字節(jié)是允許寫(xiě)入的扇區(qū)塊的起始絕對(duì)線性扇區(qū)號(hào)LBA(以低字節(jié)在前的4 個(gè)字節(jié)表示的32 位雙字?jǐn)?shù)據(jù),最后3個(gè)字節(jié)沒(méi)用.) 仿真時(shí),我讀回的首字節(jié)內(nèi)容是8, 是表示最大允許寫(xiě)入8個(gè)扇區(qū)呢 ??? 還是一定要寫(xiě)滿(mǎn)8個(gè)扇區(qū)呢 ??????

手冊(cè)中寫(xiě)到: 即使單片機(jī)發(fā)出 DISK_WRITE 命令只寫(xiě) 1 個(gè)扇區(qū),正常情況下,單片機(jī)也將收到9個(gè)中斷,前面的8個(gè)中斷是要求單片機(jī)提供數(shù)據(jù),最后一個(gè)中斷是返回最終的操作狀態(tài)。如果寫(xiě) 4 個(gè)扇區(qū),那么正常情況下,單片機(jī)將會(huì)收到33個(gè)中斷,前面的 32 個(gè)中斷是要求單片機(jī)提供數(shù)據(jù)。如果寫(xiě)操作中途失敗,單片機(jī)將有可能提前收到 USB_INT_DISK_ERR 狀態(tài),從而提前結(jié)束寫(xiě)操作。 但我在仿真時(shí),在寫(xiě)第一個(gè)扇區(qū)的過(guò)程中,是收到了8個(gè)中斷,但也收到了16個(gè)USB_INT_DISK_WRITE = 1EH, 這是怎么回事呢 ????? 收不到“ USB_INT_SUCCESS ”, 怎么回事 ??

扇區(qū)寫(xiě)參考EXAM8。 收不到“ USB_INT_SUCCESS ”,說(shuō)明數(shù)據(jù)沒(méi)有寫(xiě)完。收到了8個(gè)中斷,怎么可能收到了16個(gè)USB_INT_DISK_WRITE = 1EH?!程序中在發(fā)完扇區(qū)寫(xiě)命令后會(huì)得到8字節(jié)數(shù)據(jù)(包括長(zhǎng)度信息是9字節(jié)),數(shù)據(jù)的意義見(jiàn)下: if ( s != USB_INT_SUCCESS ) return( s ); xWriteCH376Cmd( CMD01_RD_USB_DATA0 ); xReadCH376Data( ); /* 長(zhǎng)度總是sizeof(CH376_CMD_DATA.SectorWrite) */ cnt = xReadCH376Data( ); /* CH376_CMD_DATA.SectorWrite.mSectorCount */ xReadCH376Data( ); xReadCH376Data( ); xReadCH376Data( ); StaSec = CH376Read32bitDat( ); /* CH376_CMD_DATA.SectorWrite.mStartSector,從CH376芯片讀取32位的數(shù)據(jù)并結(jié)束命令 */ 第二字節(jié)為可寫(xiě)的扇區(qū)數(shù),第一字節(jié)是后面可以獲取的字節(jié)數(shù)長(zhǎng)度8(即8個(gè)字節(jié))


我的看法如下: CH376的手冊(cè)是這樣敘述的(摘要如下): 5.35. CMD_SEC_WRITE 該命令用于獲取以扇區(qū)為單位向當(dāng)前位置寫(xiě)入數(shù)據(jù)塊的參數(shù)信息,不支持SD 卡。命令成功執(zhí)行后,CH376自動(dòng)同步移動(dòng)文件指針,以便下次讀寫(xiě)操作能夠接著本次寫(xiě)入數(shù)據(jù)的結(jié)束位置開(kāi)始。該命令需要輸入1 個(gè)數(shù)據(jù),指定請(qǐng)求寫(xiě)入的扇區(qū)數(shù),有效值為0 至255,請(qǐng)求扇區(qū)數(shù)為0 時(shí),僅用于刷新文件長(zhǎng)度。如果命令執(zhí)行完成后中斷狀態(tài)是USB_INT_SUCCESS,那么可以由CMD_RD_USB_DATA0 命令獲取共8 個(gè)字節(jié)的返回結(jié)果:首字節(jié)是允許寫(xiě)入的扇區(qū)數(shù);后4 個(gè)字節(jié)是允許寫(xiě)入的扇區(qū)塊的起始絕對(duì)線性扇區(qū)號(hào)LBA(以低字節(jié)在前的4 個(gè)字節(jié)表示的32 位雙字?jǐn)?shù)據(jù))。 我認(rèn)為: 手冊(cè)的描述是相當(dāng)?shù)暮? 甚至造成我們的誤解 !!!!!!!!!!!!!!!!!! 應(yīng)該直接了當(dāng)?shù)母嬖V我們: 一共要返回9個(gè)字節(jié), 第一個(gè)字節(jié)是………. 另外,這句話也相當(dāng)含糊不清: “后4 個(gè)字節(jié)是允許寫(xiě)入的扇區(qū)塊的起始絕對(duì)線性扇區(qū)號(hào)LBA(以低字節(jié)在前的4 個(gè)字節(jié)表示的32 位雙字?jǐn)?shù)據(jù))?!?手冊(cè)上首先敘述首字節(jié)的含義, 然后就跟著這句話, 我就理解為是首字節(jié)后的4個(gè)字節(jié), 從你的回答看: 是最后那4個(gè)字節(jié): 是LBA. 芯片是你們發(fā)明的, 敘述應(yīng)當(dāng)清晰準(zhǔn)確, 不應(yīng)當(dāng)讓讀者去猜. 按照我的理解,得到的仿真結(jié)果是千真萬(wàn)確的, 此種狀態(tài)也可供你們參考. 不斷改進(jìn). 是否妥當(dāng),請(qǐng)指教.

對(duì)你的回答表示誠(chéng)摯的感謝.


謝謝您提的建議,我們會(huì)考慮的


總的來(lái)說(shuō),CH376還是比較好用的,除了產(chǎn)生以上的一點(diǎn)誤解外,仿真還是很順利的, 目前,我已將文件成功寫(xiě)入優(yōu)盤(pán)中,操作也比較簡(jiǎn)單。 有些問(wèn)題我在驗(yàn)證一下,有問(wèn)題再請(qǐng)教你們。 對(duì)你們的支持再次表示感謝。


CH376的手冊(cè)應(yīng)該改寫(xiě),找個(gè)語(yǔ)文水平高的工程師寫(xiě)。別讓用戶(hù)費(fèi)力猜。



只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频