|
|||||||||||
| 技術(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 |
關(guān)于STR710的USB代碼的一個(gè)疑問 |
| 作者:ambercctv 欄目:MCU技術(shù) |
1)源代碼如下,代碼的作用應(yīng)該是把要發(fā)送的數(shù)據(jù)copy的packet buffer MEMORY 里,不過看起來太難懂,可不可以用memcpy來代替這個(gè)函數(shù)呢? 2)Ppt /******************************************************************************* * Function NAME : CopyBuffer * DESCRIPTION : Transfers a packet of data from/to PMA to/from user MEMORY * Input 1 : iTrDirection: USR_TO_PMA or PMA_TO_USR * Input 2 : EpNum: endpoint NUMBER * Input 3 : Usr_buffer: a pointer to user MEMORY * Input 4 : Nbytes: NUMBER of bytes to transfer * OUTPUT : None * Return VALUE : None *******************************************************************************/ void CopyBuffer(int iTrDirection, BYTE EpNum, BYTE *Usr_buffer, int Nbytes) { DWORD *pTxBuff; WORD wTra; BYTE *pbTra; int i; if (iTrDirection == USR_TO_PMA) { pTxBuff = (DWORD *)(PMAAddr + (BYTE *)(GetEPTxAddr(EpNum)*2)); for(i = 0; i < Nbytes;) { pbTra = (BYTE *)&wTra; *pbTra++ = *Usr_buffer++; i++; if (i < Nbytes) /* check for ODD transfers */ *pbTra = *Usr_buffer++; else *pbTra = 0; *pTxBuff++ = wTra; i++; } } } /* CopyBuffer */ |
| 2樓: | >>參與討論 |
| 作者: ambercctv 于 2006/11/22 14:39:00 發(fā)布:
pTxBuff為什么不直接定義成byte*呢? |
|
| 3樓: | >>參與討論 |
| 作者: ambercctv 于 2006/11/23 9:32:00 發(fā)布:
各位ST的專家給個(gè)建議吧,謝謝 香水成呢,回答一下啊 |
|
| 4樓: | >>參與討論 |
| 作者: 香水城 于 2006/11/23 12:35:00 發(fā)布:
這是因?yàn)樵赑MA中的每4個(gè)字節(jié)只用到2個(gè)子節(jié) 請(qǐng)看下面的示意圖:
|
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |