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

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | 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

一個(gè)USB的問(wèn)題,請(qǐng)各位老大幫忙!

作者:yhw1 欄目:技術(shù)交流
一個(gè)USB的問(wèn)題,請(qǐng)各位老大幫忙!
小弟最近遇到點(diǎn)麻煩,用的芯片是PDIUSBD12,就是在那塊開(kāi)發(fā)板SMART D12上寫(xiě)的程序,在USB枚舉到SET_CONFIGURATION時(shí),我也收到了相應(yīng)的數(shù)據(jù),是對(duì)的,可就是給他發(fā)0字節(jié)的包后,就沒(méi)有什么反應(yīng)了,數(shù)據(jù)收不到,中斷也沒(méi)有,程序就不動(dòng)了,下面把相應(yīng)的程序?qū)懺谙旅?請(qǐng)各位幫忙看看:
unsigned CHAR DevDes[18]={18,1,10,1,0xDC,0,0,16,0x71,0x04,0x66,6,0,1,0,0,0,1};

unsigned CHAR ConDes[46]={9,2,0x2E,0,1,1,0,0xa0,0x32,
                          9,4,0,0,4,0xDC,0xA0,0xB0,0,
                   7,5,0x01,3,4,0,50,
                7,5,0x81,3,4,0,50,
                7,5,0x02,2,64,0,50,
                7,5,0x82,2,64,0,50};
這是配置數(shù)據(jù).
當(dāng)收到數(shù)據(jù)時(shí)觸發(fā)中斷,我的讀數(shù)據(jù)的過(guò)程也是在中斷中完成的.讀完后又做了應(yīng)答處理.即
D12_ReadEndpoint(0, (unsigned CHAR *)(&(ControlData.DeviceRequest)),
            sizeof(ControlData.DeviceRequest));
    D12_AcknowledgeEndpoint(0);
    D12_AcknowledgeEndpoint(1);
在主程序循環(huán)中,我對(duì)這個(gè)請(qǐng)求是這樣處理的
case 9:      \\即SET_CONFIGURATION請(qǐng)求   09H
    D12_WriteEndpoint(1,0,0);
    if(ControlData.DeviceRequest.wValue_l==0)     \\我把wValue2字節(jié)數(shù)據(jù)拆成了2個(gè)變量,一個(gè)是高字節(jié),一個(gè)是低字節(jié),這個(gè)變量是低字節(jié)
        D12_SetEndpointEnable(0);
    else if(ControlData.DeviceRequest.wValue_l==1)
    {
        D12_SetEndpointEnable(0);
        D12_SetEndpointEnable(1);
    }                    
    break;
按照USB協(xié)議,具體步驟是:
setup包(包括數(shù)據(jù)00 09 01 00 00 00 00 00)->設(shè)備ACK->IN包->設(shè)備0字節(jié)的應(yīng)答->主機(jī)ACK
而我是READ->發(fā)ACK->發(fā)0字節(jié)數(shù)據(jù)(D12_WriteEndpoint(1,0,0);),沒(méi)錯(cuò)啊,請(qǐng)各位老大幫忙,謝謝了啊!

2樓: >>參與討論
tty1
PID應(yīng)該設(shè)置為DATA1。
 

* - 本貼最后修改時(shí)間:2005-6-15 20:47:48 修改者:tty1

3樓: >>參與討論
tty1
PID應(yīng)該設(shè)置為DATA1。
 
4樓: >>參與討論
yhw1
謝謝
 
5樓: >>參與討論
yhw1
不行啊
PDIUSBD12里面,DATA1和0是自動(dòng)設(shè)置的,不能控制啊.再說(shuō)以前的幾個(gè)步驟里也沒(méi)設(shè)置也過(guò)了啊,麻煩再幫我看看

6樓: >>參與討論
tty1
設(shè)備0字節(jié)的應(yīng)答的PID設(shè)置為data1是必須的,是USB標(biāo)準(zhǔn)要求的。
 
參與討論
昵稱(chēng):
討論內(nèi)容:
 
 
相關(guān)帖子
直流繼電器能否使用全波整流后不加電容濾波的電源?
請(qǐng)教如何對(duì)運(yùn)算放大器做輸出保護(hù)?
multisim2001的漏洞是否太大了?
手機(jī)外置攝像頭通信
請(qǐng)高手幫我做,DVD伺服電路
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


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