CH374做主機,怎樣知道從機要給主機發(fā)送數(shù)據(jù)??

如題,請教,從機使用的是CH340,而主機CH374并不知道從機什么時候要發(fā)送數(shù)據(jù)。這個問題怎么解決?

我的理解:IN令牌包是主機發(fā)送的,主機不發(fā)IN令牌包,設(shè)備不發(fā)數(shù)據(jù)。
我的問題:那么問題來了,因為USB從機(CH340)何時發(fā)送數(shù)據(jù)是隨機的,所以在程序中,CH374需要頻繁的設(shè)置成IN事務(wù),
SPI2_USB_WriteOneByte(REG_USB_H_PID,(DEF_USB_PID_IN<<4)|0x02); //主機設(shè)置成USB IN事務(wù),被操作的目的端點0x02
?? ??? ??? ??? ?SPI2_USB_WriteOneByte( REG_USB_H_CTRL, ( USB_RX_tog1 ? ( BIT_HOST_START | BIT_HOST_TRAN_TOG | BIT_HOST_RECV_TOG ) : BIT_HOST_START ) );
這兩行代碼我是放在CH374的中斷接收函數(shù)中執(zhí)行的,當(dāng)執(zhí)行完之后,在CH340沒有數(shù)據(jù)的時候,會返回NAK,返回的NAK又觸發(fā)了CH374中斷。現(xiàn)在就是這個中斷頻繁次數(shù)已經(jīng)影響到程序的其他正常功能。

請教,沁恒的技術(shù)支持,這個問題如何合理的解決。謝謝!


對于操作340,收數(shù)據(jù),這是一個批量傳輸。發(fā)IN包,可以放主循環(huán)發(fā),也可以開定時器定時發(fā)IN包。看你的主循環(huán)運行時間,保證正常340緩沖區(qū)不溢出的前提下發(fā)一次IN包即可。

按340緩沖區(qū)32字節(jié)計算,波特率115200,8N1模式(10位),340不間斷收,緩沖區(qū)將會在2.7ms滿,所以理論上一定要在2.7ms之內(nèi)發(fā)一次IN包。這是一個115200的理論極限值。


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

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