為什么獲取不了描述符?

hcn: 請問我用下面的內置固件命令獲取描述符,為什么只能得到描述符的長度,卻不能獲取具體的描述符信息? unsigned char get_descr( unsigned char type ) { /* 從設備端獲取描述符 */ CH375_WR_CMD_PORT( CMD_GET_DESCR ); CH375_WR_DAT_PORT( type ); /* 描述符類型, 只支持1(設備)或者2(配置) */ return( wait_interrupt() ); /* 等待CH375操作完成 */ } 主函數(shù)中,用 while(get_descr(1)!=USB_INT_SUCCESS); l=rd_usb_data(buffer);

能得到l的值,buffer數(shù)組里卻沒有相關的描述符號信息。

不會的!這個函數(shù)是將數(shù)據(jù)全部讀取完了之后在返回數(shù)據(jù)長度的,你將你buffer里面的數(shù)據(jù)輸出來看下。


hcn: 是這樣的,我定義了buffer[8],初始化數(shù)組每個元素都為5,但執(zhí)行程序后,l的值是描述符號的長度,但buffer數(shù)組的元素仍為5。


你要將你的緩沖區(qū)定義大點,你的設備描述符長度為0X34,那么的話,設備描述符就會大于52個字節(jié),建議緩沖區(qū)長度定義為64,即buffer[64];你上面的數(shù)據(jù)溢出了,當然會出問題。


hcn:   不是這樣的。   我之所以將數(shù)組定義這么小,是擔心單片機ram空間不夠,我將長度定義為8,按道理講,怎么也會得到幾個數(shù)據(jù)啊??墒且粋€都得不到。


你如果定義的數(shù)組小的話,是可以讀出幾個數(shù)據(jù)的,你這種情況我建議你將這個程序燒到單片機里面去運行下看可以不可以讀到數(shù)據(jù)(通過串口將數(shù)據(jù)顯示出來)。


既然獲取的長度是正確的話,那大概就是數(shù)據(jù)存儲上的問題了。


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

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