各位大神好。有兩個問題請教:
看例程usb接收都提示不能大于64Byte,這是指一次接收只能接收64字節(jié)數(shù)據(jù)么?如果要接收更多除了擴展緩存還需要哪些操作?
如果讓usb原路返回主機發(fā)送的數(shù)據(jù)請問怎么設(shè)置?
各位大神好。有兩個問題請教:
看例程usb接收都提示不能大于64Byte,這是指一次接收只能接收64字節(jié)數(shù)據(jù)么?如果要接收更多除了擴展緩存還需要哪些操作?
如果讓usb原路返回主機發(fā)送的數(shù)據(jù)請問怎么設(shè)置?
您好,CH582上是全速USB接口,USB協(xié)議規(guī)定一包數(shù)據(jù)只能負(fù)載64字節(jié),超過64字節(jié)需要分包處理。
CDC例程使用批量傳輸,注意點①需要配置足夠大的ram緩存以確保及時接收,②批量傳輸?shù)臄?shù)據(jù)量為64字節(jié)的倍數(shù)(包括64字節(jié))時,最后一包需要接收到/上傳一個0字節(jié)長度的包,表示批量傳輸完成。③上一包上傳完成后再上傳下一包,在CDC例程SendUSBData接口函數(shù)中已由Ep1DataINFlag處理,參考其他例程時可以參考編寫。
“原路返回”如果在“端點”的層面上,做不到,端點是單向的;在“接口”的層面上可以做到,一個接口可以包含多個端點,包含一個IN端點和一個OUT端點就可以做雙向傳輸。關(guān)鍵是要知悉在哪個端點上/下傳。CDC例程中的上傳端點也是由SendUSBData管理好的,注意在正確的OUT端點接收數(shù)據(jù)就好。
收到 我編寫下程序試試