|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請教周工 USB驅(qū)動(dòng)問題 |
| 作者:yangrf0422 欄目:ARM技術(shù) |
嵌入式系統(tǒng)軟件開發(fā)實(shí)例 書中第230頁,USB的標(biāo)準(zhǔn)命令中。GET Status 中的第三種情況,獲取端點(diǎn)狀態(tài)中,有一位Bit7來判斷端點(diǎn)的輸入還是輸出。但在程序中的 endp = (INT8U)(ControlData.DeviceRequest.wIndex & MAX_ENDPOINTS); //獲取端點(diǎn)號(hào) if (ControlData.DeviceRequest.wIndex & (INT8U)USB_ENDPOINT_DIRECTION_MASK) c = D12_SelectEndpoint(endp*2 + 1); //讀取輸入端點(diǎn)狀態(tài) else c = D12_SelectEndpoint(endp*2); //讀取輸出端點(diǎn)狀態(tài) ControlData.DeviceRequest.wIndex 取值是端點(diǎn)號(hào),就是0、1、2其中之一,那判斷if (ControlData.DeviceRequest.wIndex & (INT8U)USB_ENDPOINT_DIRECTION_MASK)有何意義(USB_ENDPOINT_DIRECTION_MASK=0x80) 請周工解釋一下? |
| 2樓: | >>參與討論 |
| 作者: zlgarm 于 2005/3/5 10:52:00 發(fā)布:
re USB_ENDPOINT_DIRECTION_MASK就是用Bit7位(0x80的最高位為1)能過“與”操作的結(jié)果來判斷方向的。 |
|
| 3樓: | >>參與討論 |
| 作者: yangrf0422 于 2005/3/5 11:44:00 發(fā)布:
你理解錯(cuò)了我的意思。 我是說ControlData.DeviceRequest.wIndex 這個(gè)變量的Bit7根本不會(huì)是1,因?yàn)樗娜≈凳?、1、2其中之一。也就是說與USB_ENDPOINT_DIRECTION_MASK(0x80)“與”后肯定是0。 if ... else也沒意義存在了。 |
|
| 4樓: | >>參與討論 |
| 作者: yangrf0422 于 2005/3/5 17:13:00 發(fā)布:
自己頂 |
|
| 5樓: | >>參與討論 |
| 作者: yangrf0422 于 2005/3/7 12:13:00 發(fā)布:
再頂 |
|
| 6樓: | >>參與討論 |
| 作者: zlgarm 于 2005/3/7 14:27:00 發(fā)布:
re "ControlData.DeviceRequest.wIndex 取值是端點(diǎn)號(hào),就是0、1、2其中之 一",這句話不正確,應(yīng)該說變量除了Bit7位以后才能這樣說。PC機(jī)驅(qū)動(dòng)將對Bit7加 上1或0,來區(qū)分該端點(diǎn)的方向。D12的端點(diǎn)0,1,2,這些端點(diǎn)都是雙向端點(diǎn)。如端點(diǎn) 0的端點(diǎn)索引為0和1,端點(diǎn)1的端點(diǎn)索引為2和3,端點(diǎn)2的端點(diǎn)索引為4和5, 所以需要Bit7來區(qū)分,例如如果wIndex的值為2,那么如果Bit7值為1,那么if 結(jié)果為5,else 結(jié)果為4。 總之,Bit7值是PC機(jī)的驅(qū)動(dòng)加上去的! |
|
| 7樓: | >>參與討論 |
| 作者: yangrf0422 于 2005/3/7 15:13:00 發(fā)布:
原來是在PC機(jī)端加上的啊。 謝謝!我對PC機(jī)端的驅(qū)動(dòng)不熟悉。 那當(dāng)USB設(shè)備枚舉成功后,端點(diǎn)1和2都可以用,即發(fā)端點(diǎn)使能命令。這也是PC機(jī)發(fā)的嗎? |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |