音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(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ù)
請教周工 USB驅(qū)動(dòng)問題
嵌入式系統(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
re
    USB_ENDPOINT_DIRECTION_MASK就是用Bit7位(0x80的最高位為1)能過“與”操作的結(jié)果來判斷方向的。

3樓: >>參與討論
yangrf0422
你理解錯(cuò)了我的意思。
我是說ControlData.DeviceRequest.wIndex 這個(gè)變量的Bit7根本不會(huì)是1,因?yàn)樗娜≈凳?、1、2其中之一。也就是說與USB_ENDPOINT_DIRECTION_MASK(0x80)“與”后肯定是0。
if   ...
else也沒意義存在了。

4樓: >>參與討論
yangrf0422
自己頂
 
5樓: >>參與討論
yangrf0422
再頂
 
6樓: >>參與討論
zlgarm
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
原來是在PC機(jī)端加上的啊。
謝謝!我對PC機(jī)端的驅(qū)動(dòng)不熟悉。
那當(dāng)USB設(shè)備枚舉成功后,端點(diǎn)1和2都可以用,即發(fā)端點(diǎn)使能命令。這也是PC機(jī)發(fā)的嗎?

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
有誰了解Philips ARM ISP 嗎
請教:關(guān)于2104開發(fā)板的問題。在線等!
為了節(jié)約,我想在我的板子上用EASYARM2200上的USB PACK
在USB的配置中,PINSEL2的5:4為10,為什么要配10?01不可以嗎
請周公幫忙!
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)