<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 基于CY7C68013A的USB通信程序開發(fā)設(shè)計

          基于CY7C68013A的USB通信程序開發(fā)設(shè)計

          作者: 時間:2010-08-11 來源:網(wǎng)絡(luò) 收藏

          Fx2.h頭文件中要定義自定義請求。
          Dscr.a(chǎn)51中則需要設(shè)置的是設(shè)備描述符和配置描述符,還有接口描述符。而控制傳輸需要的O端點(diǎn)不需要設(shè)置。
          Syncdly.h中要設(shè)置初始化函數(shù)TD_Init(void)的寄存器。
          本文所介紹的實(shí)例中要用到的I2C總線的讀寫函數(shù)如下:
          首先是:EZ_WriteI2C(BYTE addr,BYTE length,BYTE xdata*dat),其中addr用于指定I2C設(shè)備地址;length為傳送數(shù)據(jù)長度;*dat為發(fā)送數(shù)據(jù)緩沖區(qū)的起始地址:該函數(shù)可用于向EZ- I2C接口寫一串?dāng)?shù)據(jù)。在所有提供的數(shù)據(jù)被發(fā)送之前,該函數(shù)立即返回。如果當(dāng)前正在發(fā)送或接收數(shù)據(jù),則發(fā)回FALSE,且數(shù)據(jù)不被發(fā)送。如果端口不忙,數(shù)據(jù)則進(jìn)入隊列,并返回TRUE。
          第二個函數(shù)是EZ_ReadI2C(BYTE addr,BYTE length,BYTE xdata*dat),其中的addr指定I2C設(shè)備地址;length為傳送數(shù)據(jù)長度;*dat為接收數(shù)據(jù)緩沖區(qū)起始地址;該函數(shù)用于從EZ-USB I2C接口讀一串?dāng)?shù)據(jù)。在所有被請求的數(shù)據(jù)讀入緩沖區(qū)之前,該函數(shù)立即返回。用戶需要不斷的詢問I2C的狀態(tài),以確定數(shù)據(jù)何時有效。如果當(dāng)前正在發(fā)送或接收數(shù)據(jù),則調(diào)用該函數(shù)時返回FALSE,數(shù)據(jù)也不被讀出,當(dāng)I2C端口不忙時,則讀取數(shù)據(jù)隊列并返回TRUE。
          下面給出自定義請求的響應(yīng)代碼:

          本文引用地址:http://www.ex-cimer.com/article/157237.htm

          4 結(jié)束語
          主要介紹了EZ-USBFX2的組成部分和設(shè)計過程,本設(shè)計用NI的LabVIEW作為測試系統(tǒng)信號源的設(shè)置數(shù)據(jù)傳輸部分,并通過UCY7C-68013芯片較好地達(dá)到了配置信號源的目的。該過程現(xiàn)已通過了NI公司的VISAInteractive Control的軟件測試。事實(shí)上,該USB芯片除了配置作用外,還可以利用其他資源方便地實(shí)現(xiàn)測試系統(tǒng)的測試數(shù)據(jù)傳輸,從而達(dá)到充分利用資源的目的。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();