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

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

我終于調(diào)通了214x的usb通訊pc端源程序

作者:liwenz 欄目:ARM技術(shù)
我終于調(diào)通了214x的usb通訊pc端源程序
我一直用zlg的usb軟件包,調(diào)試我的軟件,簡單
可是,沒有pc端的源程序,一次只能控制一個214x設(shè)備,
安裝我的程序時,也是phillp的產(chǎn)品.

現(xiàn)在,好了.
安裝的是自己的產(chǎn)品,可以隨心所欲的控制好幾個設(shè)備,并且效率也更高.
編程環(huán)境是VC6,我一直用vc6

我的聯(lián)系方式:www.liwensoft.com

* - 本貼最后修改時間:2006-10-19 10:07:23 修改者:liwenz

2樓: >>參與討論
BlankHeart
不用那么麻煩.用KEIL自帶的例就可以也.
把ID STRING寫成不一樣就可以了.

3樓: >>參與討論
simon21ic
恭喜,怎么快就開始賣啦
 
4樓: >>參與討論
ysh815
能不能說的在具體一點
 
5樓: >>參與討論
eleven11
pc底層的驅(qū)動還是zlg的吧
 
6樓: >>參與討論
liwenz
整個程序都是有源程序的
我不知道zlg的程序是怎么編的,包括底層。
但我以前全部用他的,確實也很好用,簡單。

這次整個程序都是有源代碼的,c++的。
當然全部從底層開始,用起來要復(fù)雜些。
但我可以全部控制他。
我是個vc程序員(MCSD),應(yīng)用層當然是vc,
別的應(yīng)該也可以,但我不會,至少沒有測試過。
庫函數(shù)是一個gpl的,源碼公開,免費的。
我只是把它用起來了,當然是費了好些功夫。
這樣,我可以編寫各種usb驅(qū)動程序了。所以很高興。

214x邊全部是zlg的。當然它提供了源代碼,
可是pc端他不提供,也許他也提供不了,
一般而言,它提供的也足夠了,一般人用不著。
我只是特別興趣,我的主要特長在pc端軟件
只是一個特別的要求才來用lpc214x的



* - 本貼最后修改時間:2006-10-19 20:43:42 修改者:liwenz

7樓: >>參與討論
liwenz
不過,對214x這邊的代碼,我不是很清楚
 
8樓: >>參與討論
guet
不能給我們看看么
VC我學(xué)了好久也沒學(xué)會,真是浪費時間

9樓: >>參與討論
liwenz
傳送的數(shù)據(jù)長度問題
我想測試usb地傳送速度,可是顯示的長度在不回傳數(shù)據(jù)的時候,不對
我想把文件傳送到sd卡上

有回傳時,顯示的結(jié)果是
send=409600,recv=409600,132 khZ,tm=3094,R=409600
R=409600就是統(tǒng)計的結(jié)果,由2146傳過來的

可是不回傳時,就是說我把回傳數(shù)據(jù)的那句//,pc的接收那句//
顯示的結(jié)果是
send=409600,recv=0,214 khZ,tm=1913,R=969617408

2146和pc端的程序
//-----------由zlg的much程序修改一部分---------214x 程序
while(1)
{
    usbserve();                        /* USB 事件處理函數(shù) */
    
    if (bEPPflags.bits.configuration == 1)
    {
        if (bEPPflags.bits.ep1_rxdone == 1)
        {    
            DISABLE();
            bEPPflags.bits.ep1_rxdone = 0;
            if(GenEpBuf[0]=='C')
            {
            len = (GenEpBuf[1] << 8) + GenEpBuf[2];         /* 取得需要接收的數(shù)據(jù)的字節(jié)長度 */
            ep02_set_rxlen(len, USB_Buf);                   /* 設(shè)置邏輯端點2接收字節(jié)長度 */
            GenEpBuf[1] = '1';
            GenEpBuf[2]=0;
            USB_WriteEndpoint(3, 3, GenEpBuf);               /* 發(fā)送應(yīng)答給PC */
            }
            else//發(fā)送數(shù)據(jù)長度
            {
        sprintf((CHAR*)GenEpBuf,"R=%d",totalLen);
        USB_WriteEndpoint(3, 12, GenEpBuf);
        totalLen=0;
            }
                
            ENABLE();
        }

        if (Usb.bRecFinish == 1)
        {                            /* 接收完成,開始發(fā)送數(shù)據(jù) */
            DISABLE();
            totalLen+=len;
        //ep02_start_tx(len, USB_Buf);/* 啟動發(fā)送數(shù)據(jù) */
                  //不注釋這句,就是回傳數(shù)據(jù)
            
            //---------------------------
            //ep02_set_rxlen(len, USB_Buf);
            //Usb.bRecFinish = 0;
            //---------------------------
            ENABLE();    
        }
    }
}



//---------------------------------------------------
//vc6 程序 還是用的zlg的,比較簡單,大家都有
unsigned CHAR cmd[3],ack[20];
cmd[0]='C';
cmd[1] = sizeof(sendbuf) / 256; //需要發(fā)送的字節(jié)數(shù)量的長度的高 8 位
cmd[2] = sizeof(sendbuf) % 256; //                          低 8 位

LONG tm1,tm2;
int send=0,recv=0;
tm1=GetTickCount();
for(i=0;i<100;i++)
{
    ret = WriteData214x(1, cmd, 3, 1000);
    if (ret != 3)
    {
        TRACE("邏輯端點 1 發(fā)送數(shù)據(jù)錯誤!");
        return;
    }

    ret = ReadData214x(0, ack, 10, 1000);

    ret = WriteData214x(3, sendbuf, sizeof(sendbuf), 1000);
    
    if (ret != sizeof(sendbuf))
    {
        AfxMessageBox("邏輯端點 2 發(fā)送數(shù)據(jù)錯誤!");
        return;
    }
    if(ret>0)
        send+=ret;
    //ret1 = ReadData214x(2, recbuf, sizeof(sendbuf), 1000);
//就是注釋這一句,就不要回傳
    if(ret1>0)
        recv+=ret1;
    TRACE("send=%d,recv=%d\n",ret,ret1);
}
tm2=GetTickCount()-tm1;
cmd[0]='R';
    ret = WriteData214x(1, cmd, 3, 1000);
ret = ReadData214x(0, ack, 20, 1000);
TRACE("send=%d,recv=%d,%d khZ,tm=%d,%s",send,recv,send/tm2,tm2,ack);



10樓: >>參與討論
simon21ic
這個速度正常
有回傳和沒有回傳的速度確實有明顯的差別,沒有回傳的時候速度可以快不少,我的做法是每次ARM都回傳,但PC端是間隔N次檢查一次,這樣速度可以提高不少,而且本次回傳的數(shù)據(jù)可以把上次的數(shù)據(jù)刷新,也就是說不會疊加

11樓: >>參與討論
liwenz
我這個數(shù)據(jù)回傳的問題解決了
在216端加上 Usb.bRecFinish = 0;
即可
     if (Usb.bRecFinish == 1)
    {                            /* 接收完成,開始發(fā)送數(shù)據(jù) */
    DISABLE();
    if((Usb.Len)>0)
    totalLen+=Usb.Len;
    //ep02_start_tx(Usb.Len, USB_Buf);    /* 啟動發(fā)送數(shù)據(jù) */
    Usb.bRecFinish = 0;
    //---------------------------
    ENABLE();
    }

12樓: >>參與討論
simon21ic
低級錯誤,哈哈
 
13樓: >>參與討論
anyusb
先后用過DDK/DRIVERSTUDIO
最后用煩了,現(xiàn)在一直用WINDRIVER,用要調(diào)用什么USB都很快.

14樓: >>參與討論
zlg315
對于USB驅(qū)動開發(fā)PC程序,用戶如果有特別的需求,我們可以在
最短的時間之內(nèi)為您定制。我們公司的USB開發(fā)小組,存在至今已經(jīng)五年時間,對USB的理解非常深刻、透徹(包括HOST、OTG),而且擁有全面的USB測試環(huán)境,保證程序完全正確,傳輸速度達到極限要求。
    與此同時,祝賀liwenz網(wǎng)友的成功!

15樓: >>參與討論
liwenz
我也可以定做usb驅(qū)動,但不是免費的
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請教周工,SmartARM2200上的MT45W4MW16哪里買得到?
關(guān)于LPC2220的sleep 功耗
急求:arm仿真的問題
我也問個問題,在ZLG WEB上看到有LPC23XX的芯片出售?
關(guān)于IRQ中斷
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號