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

正文內(nèi)容

官方usb程序和例程-文庫吧

2025-06-22 13:35 本頁面


【正文】 與SIE共享達(dá)到數(shù)據(jù)傳輸?shù)哪康?。所以CPU通過APB1總線接口訪問,SIE通過包緩沖區(qū)接口模塊訪問,中間通過Arbiter來協(xié)調(diào)訪問。當(dāng)然我們關(guān)注的中心點(diǎn)是控制、中斷和端點(diǎn)控制寄存器。我們通過這些寄存器來獲取總線傳輸?shù)臓顟B(tài),控制各個(gè)端點(diǎn)的狀態(tài),并可以產(chǎn)生中斷來讓CPU處理當(dāng)前的USB事件。CPU可以通過APB1總線接口來訪問這些寄存器。它們使用的都是PCLK1時(shí)鐘。USB模塊的寄存器認(rèn)識(shí)(1)控制寄存器CNTR傳輸完成中斷允許位。CTRM,1有效,如果SIE置位傳輸完成標(biāo)志,則相應(yīng)的數(shù)據(jù)傳輸完成中斷發(fā)生。第15位包緩沖區(qū)溢出中斷允許位錯(cuò)誤中斷允許位喚醒中斷允許位。WKUPM。1有效,如果喚醒請(qǐng)求標(biāo)志位置位,則產(chǎn)生喚醒中斷。掛起中斷允許位。SUSPM,1有效,當(dāng)總線掛起標(biāo)志置位時(shí),發(fā)生掛起中斷。復(fù)位中斷允許位。RESETM。1有效,軟件強(qiáng)制復(fù)位和總線復(fù)位信號(hào),都能觸發(fā)復(fù)位中斷。幀首中斷允許位期望幀首中斷允許位。ESOFM。它的含義是沒有收到幀首信號(hào),允許發(fā)生中斷。第8位向主機(jī)發(fā)送的喚醒請(qǐng)求,RESUME。1有效,主機(jī)收到該信號(hào),將喚醒設(shè)備。這個(gè)由軟件置位。第4位強(qiáng)制掛起控制,F(xiàn)SUSP。1有效。與由于總線無活動(dòng)引起掛起的效果相同。低功耗模式。前提是先進(jìn)入掛起狀態(tài)。由軟件設(shè)置,一般又硬件復(fù)位(被喚醒后自動(dòng)清零)。斷電模式控制位。PDWN。此位為1時(shí),USB模塊關(guān)閉。強(qiáng)制復(fù)位控制。FRES。與總線上的復(fù)位信號(hào)產(chǎn)生相同的效果。也能產(chǎn)生復(fù)位中斷.第0位。(2)中斷狀態(tài)寄存器ISTR這個(gè)寄存器主要是反映USB模塊當(dāng)前的狀態(tài)的。第158為與控制寄存器的中斷允許是意義對(duì)應(yīng)的。相應(yīng)的標(biāo)志位置位,且中斷未屏蔽,則向CPU發(fā)出對(duì)應(yīng)的中斷。CTR標(biāo)志,數(shù)據(jù)傳輸完成后硬件置1.PMAOVR標(biāo)志ERR標(biāo)志W(wǎng)KUP請(qǐng)求,總線檢測到主機(jī)喚醒請(qǐng)求時(shí)由硬件置位。SUSP請(qǐng)求標(biāo)志位。RESET請(qǐng)求標(biāo)志位。SOF幀首標(biāo)志ESOF,期待幀首標(biāo)志。DIR傳輸方向,此位由硬件控制。IN時(shí)為0,OUT為1.第4位。發(fā)生數(shù)據(jù)傳輸?shù)亩它c(diǎn)的地址。(3) USB設(shè)備地址寄存器第7位,EF,USB模塊允許位。如果EF=0,則USB模塊將停止工作。第60位。USB當(dāng)前使用的地址。復(fù)位時(shí)為0.(4)端點(diǎn)狀態(tài)和配置寄存器,8個(gè)寄存器,支持8個(gè)雙向端點(diǎn)和16個(gè)單向端點(diǎn)。 CTR_RX,正確接收標(biāo)志位。第15位。DTOG_RX,用于檢測的數(shù)據(jù)翻轉(zhuǎn)位。一般由硬件自動(dòng)設(shè)置,軟件寫1可使其手動(dòng)翻轉(zhuǎn)。STAT_RX,占據(jù)兩位。00表示該端點(diǎn)不可用,無回應(yīng)。01表示響應(yīng)STALL10響應(yīng)NAK11表示端點(diǎn)有效,可接收數(shù)據(jù)。SETUP標(biāo)志。收到SETUP令牌包時(shí)置位。用戶收到數(shù)據(jù)后需檢查次位。第11位。EP_TYPE,兩位,表示端點(diǎn)類型。00表示批量端點(diǎn)。01表示控制端點(diǎn)10表示等時(shí)端點(diǎn)。11表示中斷端點(diǎn)。EP_KIND,端點(diǎn)特殊類型。在EP_TYPE=01時(shí),表示設(shè)備期望主機(jī)的0字節(jié)狀態(tài)包。CTR_TX。正確發(fā)送標(biāo)志。主機(jī)的IN包之后。第7位。DTOG_TX,用于檢測的數(shù)據(jù)翻轉(zhuǎn)位。一般由硬件自動(dòng)設(shè)置,軟件寫1可使其手動(dòng)翻轉(zhuǎn)。STAT_TX,占據(jù)兩位。00表示該端點(diǎn)不可用,無回應(yīng)。01表示響應(yīng)STALL10響應(yīng)NAK11表示端點(diǎn)有效,可發(fā)送數(shù)據(jù)。端點(diǎn)地址:EA【3:0】,表明該寄存器對(duì)應(yīng)的端點(diǎn)號(hào)碼。比如2號(hào)寄存器都可以對(duì)應(yīng)端點(diǎn)1(在雙緩沖情況下)。第30位。(5)端點(diǎn)描述符表相關(guān)寄存器首先有一個(gè)描述符表地址寄存器,指明了包緩沖區(qū)內(nèi)端點(diǎn)描述符表的地址。每一個(gè)端點(diǎn)都對(duì)應(yīng)一個(gè)描述附表。描述符表也在包緩沖區(qū)內(nèi)。每個(gè)端點(diǎn)寄存器對(duì)應(yīng)的描述符表的地址可根據(jù)公式計(jì)算。單緩沖、雙向的端點(diǎn)描述符表有四項(xiàng),每項(xiàng)占據(jù)兩個(gè)字節(jié):分別是端點(diǎn)n的發(fā)送緩沖區(qū)地址、發(fā)送字節(jié)數(shù)、接收緩沖區(qū)地址、接收字節(jié)數(shù)。了解USB相關(guān)寄存器的知識(shí)以后,接下來就可以分析“JoyStickMouse”詳細(xì)的工作過程了。三、USB的“JoyStickMouse”工作過程詳細(xì)分析初始化過程敘述從main()函數(shù)開始(1)Set_System(void)的工作過程由于這些代碼都是采用庫代碼,所以我主要分析每個(gè)代碼具體做了什么工作。有些常用、類似的代碼這里就不列出來了。先將RCC部分復(fù)位,系統(tǒng)使用內(nèi)部振蕩HSI,8MHz——RCC_DeInit()。使能HSE——RCC_HSEConfig(RCC_HSE_ON)。設(shè)置HCLK = SYSCLK——RCC_HCLKConfig(RCC_SYSCLK_Div1)。設(shè)置PCLK2,PCLK1——RCC_PCLK2Config(RCC_HCLK_Div1)。設(shè)置PLL,使能PLL——PLL采用HSE,輸出=HSE X 9;RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9)。系統(tǒng)時(shí)鐘采用PLL輸出——RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK)。使能PWR控制,目的是為了控制CPU的低功耗模式;將所有輸入口初始化為模擬輸入——GPIO_AINConfig()。使能USB上拉控制GPIO端口的時(shí)鐘,這個(gè)端口設(shè)置為低電平時(shí),USB外設(shè)會(huì)被集線器檢測到,并報(bào)告給主機(jī),這也是設(shè)備枚舉的開始;將這個(gè)端口的模式設(shè)置為開漏輸出;初始化上下左右四個(gè)按鍵為上下拉輸入;配置GPIOG8為EXTI8中斷輸入引腳,這個(gè)是在外部按鍵輸入引起中斷。配置EXTI18中斷。這個(gè)是發(fā)生USB喚醒事件時(shí)用。 = EXTI_Line18。 // USB resume from suspend mode = EXTI_Trigger_Rising。 = ENABLE。EXTI_Init(amp。EXTI_InitStructure)。(2)USB_Interrupts_Config(void)的工作過程設(shè)置向量表位置在FLASH起始位置——NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00)。設(shè)置優(yōu)先級(jí)分組,1位用于搶占組級(jí)別。其余用于子優(yōu)先級(jí)——NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1)。接下來配置、使能了三個(gè)中斷,包括USB低優(yōu)先級(jí)中斷、USB喚醒中斷(EXTI18)、和EXTI8(按鍵控制)中斷。它的優(yōu)先級(jí)設(shè)置有些問題,明明只有一位用于搶占優(yōu)先級(jí)。它把EXTI8的搶占優(yōu)先級(jí)設(shè)為2。結(jié)果在調(diào)試時(shí)發(fā)現(xiàn),它的搶占優(yōu)先級(jí)仍然是0。(3)Set_USBClock()的工作過程這個(gè)代碼就兩句話:RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5)。RCC_APB1PeriphClockCmd(RCC_APB1Periph_USB, ENABLE)。作用是設(shè)置并使能USB時(shí)鐘,從RCC輸出可以看到,USB時(shí)鐘是48MHz。(4)USB_Init()的工作過程void USB_Init(void){pInformation = amp。Device_Info。pInformationControlState = 2。pProperty = amp。Device_Property。//這個(gè)是設(shè)備本身支持的屬性和方法pUser_Standard_Requests = amp。User_Standard_Requests。 //這個(gè)是主機(jī)請(qǐng)求的實(shí)現(xiàn)方法。pPropertyInit()。 //回調(diào)設(shè)備的初始化例程。}這個(gè)主要是初始化了三個(gè)全局結(jié)構(gòu)體指針,pInformation表明當(dāng)前連接的狀態(tài)和信息,pProperty表明設(shè)備支持的方法,pUser_Standard_Requests是主機(jī)請(qǐng)求實(shí)現(xiàn)的函數(shù)指針數(shù)組。Device_Info是一個(gè)結(jié)構(gòu)體,包括11個(gè)成員變量。這里是將它的ControlState設(shè)為2,意義現(xiàn)在還不十分明了。typedef struct _DEVICE_INFO{u8 USBbmRequestType。/* bmRequestType */u8 USBbRequest。/* bRequest */u16_u8 USBwValues。/* wValue */u16_u8 USBwIndexs。/* wIndex */u16_u8 USBwLengths。/* wLength */u8 ControlState。/* of type CONTROL_STATE */u8 Current_Feature。u8 Current_Configuration。/* Selected configuration */u8 Current_Interface。/* Selected interface of current configuration */u8 Current_AlternateSetting。/* Selected Alternate Setting of currentinterface*/ENDPOINT_INFO Ctrl_Info。//端點(diǎn)信息結(jié)構(gòu)體}DEVICE_INFO。最后調(diào)用pPropertyInit(),實(shí)質(zhì)就是調(diào)用Joystick_init(void)。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1