在CH375DS2里面有詳細的介紹
void toggle_recv(void) /* 主機接收成功后,切換DATA0和DATA1實現(xiàn)數(shù)據(jù)同步 */ { CH375_WR_CMD_PORT( CMD_SET_ENDP6 ); CH375_WR_DAT_PORT( endp6_mode ); endp6_mode^=0x40; delay2us(); }
void toggle_send(void) /* 主機發(fā)送成功后,切換DATA0和DATA1實現(xiàn)數(shù)據(jù)同步 */ { CH375_WR_CMD_PORT( CMD_SET_ENDP7 ); CH375_WR_DAT_PORT( endp7_mode ); endp7_mode^=0x40; delay2us(); }
以上兩個函數(shù)從CH375LNK.C(ch375+ch372連接兩個單片機系統(tǒng))拷貝出來的,未經(jīng)修改,事實上這個操作行得通。
原來在操作set_usb_made的時候賦值了
不知道這樣的理解正確不:發(fā)送接收操作通一個端點的話,n(奇數(shù))為操作次數(shù)(包括發(fā)送接收),不管該次操作是接收還是發(fā)送,操作數(shù)都是80,n+1就是c0。如果接收發(fā)送操作的是不同的端點,那么對于同一端點80和c0應(yīng)該是交替的。
用0x80,0x06,0x00,0x04,0x00,0x00,0x09,0x00讀不了接口描述符的嗎?接口描述符的類型是4
實際在你讀取配置描述符的時候,在讀取完成之后,里面的數(shù)據(jù)包括配置描述符,接口描述符,端點描述符,這些描述符是在你發(fā)送0x80,0x06,0x00,0x02,0x00,0x00,0xff,0x00之后全部讀取到了
我的意思是能不能單獨讀接口描述符?
至少USB協(xié)議里面標準的獲取描述符的請求是沒有單獨獲取接口描述符的命令的,具體的你可以參考USB的協(xié)議
如果配置描述符總長度大于64,那么用get_descr(2)函數(shù)讀出前64字節(jié),還能通過rd_usb_data去讀剩下的嗎?還是大于64字節(jié)的,一開始就必須用rd_usb_data去讀呢?
一開始的時候就要用外置固件來讀