freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

官方usb程序和例程(更新版)

2025-08-15 13:35上一頁面

下一頁面
  

【正文】 有些細(xì)節(jié)暫時(shí)先放著pInformation = pPropertyMaxPacketSize。if (CopyRoutine){pInformation = wOffset。//這次是有數(shù)據(jù)傳輸?shù)?,所以有進(jìn)入該該函數(shù)。 /* wValue */++。進(jìn)入處理函數(shù): = PMAAddr + (u8 *)(_GetEPRxAddr(ENDP0) * 2)。_SetEPRxStatus(ENDP0, SaveRState)。{//這里先分析SETUP包。 if ((wIstr amp。 /*首先清除傳輸完成標(biāo)志 */EPindex = (u8)(wIstr amp。//設(shè)備狀態(tài)置位為未連接狀態(tài)。 //地址默認(rèn)為0.}復(fù)位中斷執(zhí)行完成后,開發(fā)板的USB接口能夠以默認(rèn)地址對主機(jī)來的數(shù)據(jù)包進(jìn)行響應(yīng)了。SetEPTxCount(ENDP1, 4)。SetEPRxCount(ENDP0, )。//端點(diǎn)狀態(tài)為發(fā)送無效,也就是主機(jī)IN令牌包來的時(shí)候,回送一個(gè)STALL。}(3)JoyStick_Reset()函數(shù)的處理。當(dāng)復(fù)位中斷允許、且總線被集線器復(fù)位的時(shí)候,固件程序進(jìn)入U(xiǎn)SB_LP中斷。然后清除所有的狀態(tài)位。當(dāng)集線器報(bào)告設(shè)備連接狀態(tài),并收到主機(jī)指令后,會復(fù)位USB總線,這需要一定的時(shí)間(這段時(shí)間內(nèi)設(shè)備應(yīng)該準(zhǔn)備好處理復(fù)位指令)。最后調(diào)用pPropertyInit(),實(shí)質(zhì)就是調(diào)用Joystick_init(void)。/* wIndex */u16_u8 USBwLengths。 //回調(diào)設(shè)備的初始化例程。Device_Info。接下來配置、使能了三個(gè)中斷,包括USB低優(yōu)先級中斷、USB喚醒中斷(EXTI18)、和EXTI8(按鍵控制)中斷。 = EXTI_Line18。設(shè)置HCLK = SYSCLK——RCC_HCLKConfig(RCC_SYSCLK_Div1)。描述符表也在包緩沖區(qū)內(nèi)。STAT_TX,占據(jù)兩位。EP_KIND,端點(diǎn)特殊類型。SETUP標(biāo)志。復(fù)位時(shí)為0.(4)端點(diǎn)狀態(tài)和配置寄存器,8個(gè)寄存器,支持8個(gè)雙向端點(diǎn)和16個(gè)單向端點(diǎn)。SOF幀首標(biāo)志ESOF,期待幀首標(biāo)志。與總線上的復(fù)位信號產(chǎn)生相同的效果。低功耗模式。ESOFM。WKUPM。所以CPU通過APB1總線接口訪問,SIE通過包緩沖區(qū)接口模塊訪問,中間通過Arbiter來協(xié)調(diào)訪問。 ISTR_CTR amp。Resume(RESUME_EXTERNAL)。wIstr = _GetISTR()。JoyState()用來獲取按鍵的狀態(tài)。/* clear pending interrupts */wInterrupt_Mask = IMR_MSK。Windows中處理消息,好像也用到了這種模式。/* Initialize devices one by one */pPropertyInit()。后面兩個(gè)是函數(shù)指針結(jié)構(gòu)體,里面都是USB請求實(shí)現(xiàn)、功能實(shí)現(xiàn)的函數(shù)指針。(2)USB_Interrupts_Config()。在這個(gè)頭文件中,又有以下定義:include include include include include include include ??梢姡琒T的USB操作庫結(jié)構(gòu)十分清晰明了,我先不準(zhǔn)備直接閱讀源代碼。跟蹤到代碼中,主要設(shè)配置了USB低優(yōu)先級中斷和喚醒中斷,又有一個(gè)EXTI中斷功能未知。pInformationControlState = 2。USER_STANDARD_REQUESTS User_Standard_Requests ={Joystick_GetConfiguration,Joystick_SetConfiguration,Joystick_GetInterface,Joystick_SetInterface,Joystick_GetStatus,Joystick_ClearFeature,Joystick_SetEndPointFeature,Joystick_SetDeviceFeature,Joystick_SetDeviceAddress}。這是函數(shù)的代碼:void Joystick_init(void){/* Update the serial number string descriptor with the data from the uniqueID*/Get_SerialNum()。}實(shí)質(zhì)上,代碼執(zhí)行到這里,開發(fā)板已經(jīng)可以響應(yīng)主機(jī)發(fā)來的數(shù)據(jù)了。它的工作只是將數(shù)據(jù)寫入IN端點(diǎn)緩沖區(qū),主機(jī)的IN令牌包來的時(shí)候,SIE負(fù)責(zé)把它返回給主機(jī)。 wInterrupt_Mask){_SetISTR((u16)CLR_RESET)。 wInterrupt_Mask){if (fSuspendEnabled) /* check if SUSPEND is possible */{Suspend()。首先在總線端(與D+、D相連的那一端),通過模擬收發(fā)器與SIE連接。CPU可以通過APB1總線接口來訪問這些寄存器。SUSPM,1有效,當(dāng)總線掛起標(biāo)志置位時(shí),發(fā)生掛起中斷。1有效,主機(jī)收到該信號,將喚醒設(shè)備。斷電模式控制位。第158為與控制寄存器的中斷允許是意義對應(yīng)的。發(fā)生數(shù)據(jù)傳輸?shù)亩它c(diǎn)的地址。DTOG_RX,用于檢測的數(shù)據(jù)翻轉(zhuǎn)位。第11位。正確發(fā)送標(biāo)志。端點(diǎn)地址:EA【3:0】,表明該寄存器對應(yīng)的端點(diǎn)號碼。了解USB相關(guān)寄存器的知識以后,接下來就可以分析“JoyStickMouse”詳細(xì)的工作過程了。系統(tǒng)時(shí)鐘采用PLL輸出——RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK)。EXTI_Init(amp。結(jié)果在調(diào)試時(shí)發(fā)現(xiàn),它的搶占優(yōu)先級仍然是0。Device_Property。這里是將它的ControlState設(shè)為2,意義現(xiàn)在還不十分明了。u8 Current_Configuration。設(shè)備當(dāng)前配置置為0。_SetCNTR(wRegVal)。_SetCNTR(wInterrupt_Mask)。 ISTR_RESET amp。/當(dāng)前接口為0pInformationCurrent_Feature = Joystick_ConfigDescriptor[7]。SetEPTxAddr(ENDP0, ENDP0_TXADDR)。//使能端點(diǎn)0的接收,因?yàn)楹芸炀鸵邮誗ETUP令牌包后面跟著的數(shù)據(jù)包了。SetEPTxStatus(ENDP1, EP_TX_NAK)。//這句執(zhí)行完,設(shè)備被主機(jī)檢測到,并且能夠響應(yīng)復(fù)位中斷了。主機(jī)發(fā)出對地址0、端點(diǎn)0發(fā)出SETUP令牌包,首先端點(diǎn)0寄存器的第11位SETUP位置位,表明收到了setup令牌包。if (EPindex == 0)//如果是端點(diǎn)0,這里的確是端點(diǎn)0{SaveRState = _GetEPRxStatus(ENDP0)。//調(diào)用該程序處理固件數(shù)據(jù)輸出后的工作。 EP_CTR_TX) != 0)//這種情況一般不太可能,{//如果出現(xiàn)表示同時(shí) TX和RX 同時(shí)置位。}else if ((wEPVal amp。if (pInformationControlState != PAUSE){pInformationUSBbmRequestType = *++。 /* wIndex */++。 //這是一個(gè)函數(shù)指針,由用戶提供。 //這個(gè)函數(shù)這里調(diào)用的目的只是設(shè)置了pInformation中需要寫入的描述符的長度。 //這個(gè)是取得用戶描述符緩沖區(qū)的地址。USB_StatusOut()。主機(jī)方返回一個(gè)ACK后,主機(jī)發(fā)送數(shù)據(jù)的CTR標(biāo)志置位,DIR=0,EP_ID=0,表明主機(jī)正確收到了用戶發(fā)過去的描述符。//此次調(diào)用后,當(dāng)前狀態(tài)變成WAIT_STATUS_OUT,表明設(shè)備等待狀態(tài)過程,主機(jī)輸出0字節(jié)。ControlState = STALLED。設(shè)備在檢驗(yàn)數(shù)據(jù)后,發(fā)一個(gè)ACK握手包。ControlState = WAIT_STATUS_IN。本次中斷由IN0_Process()函數(shù)來處理,追蹤進(jìn)入,它執(zhí)行以下代碼:else if (ControlState == WAIT_STATUS_IN){if ((pInformationUSBbRequest == SET_ADDRESS) amp。}執(zhí)行設(shè)置地址操作、采用新地址后,把設(shè)備的狀態(tài)改為STALLED。由調(diào)用Data_Setup0()函數(shù)進(jìn)行處理。有可能的話:Send0LengthData()。主機(jī)設(shè)置配置。設(shè)置空閑時(shí)一個(gè)類特殊請求,其特征碼為0x21,2表示類請求而不是標(biāo)準(zhǔn)請求,1表示接收對象是接口而不是設(shè)備。}}主機(jī)獲取報(bào)告描述符建立階段:主機(jī)發(fā)SETUP包、發(fā)請求數(shù)據(jù)包(DATA0包)、用戶ACK。調(diào)用用戶的類特殊實(shí)現(xiàn)來獲取報(bào)告描述符,同時(shí)HID類描述符也是通過這種方式取得的。在中斷處理程序中,執(zhí)行下列代碼:if ((wEPVal amp。歡迎您的光臨,!希望您提出您寶貴的意見,你的意見是我進(jìn)步的動力。學(xué)習(xí)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1