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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > USB數(shù)據(jù)通信接□模塊的程序設(shè)計(jì)

          USB數(shù)據(jù)通信接□模塊的程序設(shè)計(jì)

          作者: 時(shí)間:2013-10-17 來源:網(wǎng)絡(luò) 收藏

            以USHORT ReadlnterruptRegister(void)函數(shù)為例,代碼如下:


            3 中斷服務(wù)程序

            這部分代碼處理由PDIUSBDl2產(chǎn)生的中斷,它將數(shù)據(jù)從PDIUSBDI2的內(nèi)部FIFO取回到CPU存儲(chǔ)器,并建立正 確的事件標(biāo)志以通知主循環(huán)程序進(jìn)行處理。在ISR函數(shù)的入口固件使用ReadlntemJptRegister()來決定中 斷源,根據(jù)中斷源進(jìn)入相應(yīng)的子程序進(jìn)行處理。

            中斷服務(wù)處理函數(shù)代碼如下


            4.主端點(diǎn)操作

            這部分代碼較多,包括各個(gè)端口的發(fā)送/接收函數(shù),端點(diǎn)1和主端點(diǎn)(端點(diǎn)2)的收發(fā)函數(shù)相對(duì)較簡(jiǎn)單。

            

           ?。?)主端點(diǎn)接收函數(shù)。

            5.程序說明

            在端點(diǎn)0的發(fā)送函數(shù)中,MCU首先需要通過讀DI2的最后處理狀態(tài)寄存器,清0Control_In中斷標(biāo)志位,接著 MCU在確認(rèn)DI2處于傳輸模式后進(jìn)行數(shù)據(jù)所的發(fā)送。由于D12的控件端點(diǎn)只有16bit,如果傳輸?shù)拈L(zhǎng)度大于 16bit,MCU在傳輸階段就必須控制數(shù)據(jù)的數(shù)量,其流程如圖2所示。MCU必須檢查要發(fā)送到主機(jī)的當(dāng)前和剩余 的數(shù)據(jù)大小,如果剩下的字節(jié)數(shù)大于16,MCU將先發(fā)送16字節(jié)并減去參考長(zhǎng)度(要求的長(zhǎng)度)16。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(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); })();