CH375_CMD_PORT = CMD_WR_USB_DATA7; delay2us(); CH375_DAT_PORT = 64; CH375_DAT_PORT = *test++; CH375_DAT_PORT = *test++; CH375_DAT_PORT = *test++; 本來要送64個,要是只發(fā)了三個,這是USB主機(jī)要取,這個時候是怎么處理的。? 就只讀這三個數(shù)過去嗎》? 同樣,USB主機(jī)發(fā)過來的數(shù),還沒取完,USB主機(jī)又要發(fā)數(shù)據(jù),這又怎么處理的。?
這時還沒解鎖或讀取數(shù)據(jù),不會出現(xiàn)你所描述的情況,建議你看看CH372做設(shè)備的外置固件程序
如果你的發(fā)送程序不是在上傳成功中斷里呢》? 中斷過來只是起了個解鎖的作用
建議你先看看372DS2.pdf中,外置固件的流程。
在372芯片里面,實際會根據(jù)你寫的數(shù)據(jù)長度來接收你發(fā)送的數(shù)據(jù),如果寫的數(shù)據(jù)長度是64字節(jié),而寫進(jìn)去的數(shù)據(jù)只有三個字節(jié)的話,這個時候,372會一直等待你后面61個字節(jié)的數(shù)據(jù)寫到372里面去,否則372會一直在等待你后續(xù)的數(shù)據(jù)寫進(jìn)來。即使上位機(jī)取數(shù)據(jù)的話也是取不到數(shù)據(jù)的。
謝謝謝謝,太感謝了。 讀不到數(shù)據(jù)是啥意思,是等待有64個數(shù)了再讀呢》?還是讀到0個數(shù)?
最低層的USB通信是計算機(jī)要能正確的讀取到372的數(shù)據(jù)的話,必須要2個條件同時符合才可以,一個就是372將數(shù)據(jù)準(zhǔn)備好,另外一個就是372給計算機(jī)返回ACK,按照你上面的說法,372沒有將數(shù)據(jù)準(zhǔn)備好,所以計算機(jī)就讀取不到數(shù)據(jù),計算機(jī)一直在等待64字節(jié)的數(shù)據(jù)。