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

正文內容

基于stm32的usb簡易鼠標設計(編輯修改稿)

2024-12-18 15:03 本頁面
 

【文章內容簡介】 是握手包,其他為令牌包。除了 PRE,其他三個都是 協(xié)議新增的,不在此次設計的研究范圍。 PRE 是通知集線器打開其低速端口的一種前導包。 PRE 僅僅使用在全速模式中,與握手包的結構一樣。當傳輸模式由全速變低速時,主機會在全速模式下發(fā)送一個 PRE 令牌包,集線器收到此令牌包后,就會打開低速設備端口,但全速設備會忽略次令牌包。 河南城建學院本科畢業(yè)設計(論文) 第 2章 USB協(xié)議概述 7 USB 的傳輸類型 USB 有四種傳輸類型:批量傳輸、同步傳輸、中斷傳輸和控制傳輸。前面提到,USB 數據的基本傳輸單位是包,但在具體傳輸數據時還必須把包組織成事務。 批量傳輸 :使用批量事務傳輸數據 。 中斷傳輸 :一種保證查詢頻率的傳輸。 中斷傳輸一般用在 我們所說的延遲 要 盡可能小的設備 中 ?,F(xiàn)在使用的鼠標、鍵盤 及其他 HID 都屬于這樣的設備。 同步傳輸 : 有些設備如音頻、視頻設備對數據的延遲很敏感,而且需要對大量數據不停的傳輸,但對數據的正確與否要求不高,此時同步傳輸是最好的選擇。 控制傳輸: 分為建立過程、數據過程(可選)和狀態(tài)過程三個過程。建立過程 用來 輸出數據,使用建立事務。建立過程使用只能使用 DATA0 的 SETUP 令牌包,而且握手包也只能只用 ACK 應答。數據過程可選,如果有可以包含一筆或多比數據事務。狀態(tài)過程是一筆只使用 DATA1 包的批量事務。其傳輸方向也就是控制讀和控制寫過程與前面批量事務相反 。 河南城建學院本科畢業(yè)設計(論文) 第 3章 STM32及 MDK簡介 8 第 3 章 STM32 及 MDK 簡介 STM32 簡介 2020 年 ARM 公司推出 Cortex 系列微處理器,根據不同性能的要求,分成了以公司三個字母分別命名的三個系列。本次設計使用的是 M 系列,因為這個系列成本較低,性能上也完全能夠勝任。在 ARM 公司和意法半導體 ST 公司合作后, 2020年 ST 公司發(fā)布了基于 CortexM3 內核的 STM32 系列處理器。 STM32 系列處理器分為標準型和增強型兩個系列,主要產品有標準型的STM32F101 工作在 36MHz,增強型的 STM32F103 工作在 72MHz 并擁有更大的 RAM 和更豐富的外設。因為 STM32F103 運算頻率高,能實現(xiàn)更高端的運算,而且其自帶的端口具有極好的連接能力,價格上也比較便宜,所以設計中采用這一款。 圖 是 STM32F103 處理器的配置。 72MHzCPU 多達 64K的 RAM 2 12 位 ADC 溫度傳感器 3USART 2 SPI 多達 512K的 ROM USB 通用 I/O引腳 3 16位定時器 4~ 16MHz主振蕩器 內嵌 8MHz 和32kHz 的 RC 振蕩器 實時時鐘 2看門狗 7通道 DMA CAN PWM 定時器 圖 STM32F103處理器的配置 正是由于 STM32F10x 系列處理器配有眾多的外設,所以它的用途非常廣泛。在工業(yè)方面,可以應用在 PLC、報警系統(tǒng)、變頻器,打印機等上面;在低功耗方面,應用的產品有電表、血糖測量儀、 UPS 等;數碼家電方面,相應的產品有電腦外設、游戲機、數碼相機等。 MDK 的使用 支持 STM32 微控制器的開發(fā)工具雖然很多,但結合中國的業(yè)內行情及收費情況, Keil 公司的 MDK 是不二選擇。 MDK 集成了 Keil 的μ Vision IDE 和 ARM 編譯工具 RVCT 的優(yōu)勢。特別是中 國版 MDK 推出后,通過更加合理的價格和服務,逐步使得 MDK 成為中國嵌入式工程師的最愛芯片。 使用 MDK 的一般開發(fā)過程: 河南城建學院本科畢業(yè)設計(論文) 第 3章 STM32及 MDK簡介 9 新建一個工程,從設備庫中選擇目標芯片,配置編譯器環(huán)境; 用 C/C++或匯編語言編寫源文件; 編譯目標應用程序; 修改源程序中的錯誤; 測試連接應用程序。 MDK 的工具集默認的是 RealView 編譯工具,如有特殊需要,也可以安裝使用GNU GCC 編譯器。下面是 此次設計中 的 具體操作 : 在 MDK 主界面中選擇 Project→ New Project 菜單項,輸入工程名字即可新建一個 工程。創(chuàng)建新工程時軟件會提示我們?yōu)楣こ踢x擇一款相應的處理器,也可以通過 Poject→ Select Device 打開此選項。對于大部分設備,軟件會提示是否在工程中添加 CPU 的啟動代碼,為了讓設備順利完成初始化工作,我們點擊“是”,以減少編寫啟動代碼的工作量。 MDK 還可以通過 Project→ Options for Target,在彈出的選項中對目標硬件和設備內組件的相關參數進行配置 。 工程創(chuàng)建完了,接下來就是源程序的編寫了。點擊 File→ New 創(chuàng)建新的源文件,在編輯窗口寫完源程序后以 .C 為后綴保存。一般情況下會 先寫一個 添加到工程中。一般設計人員會采用文件組來組織大的工程,將工程中同一模塊或同一類型的源文件放入一個文件組中。點擊 Project→ Conponents,Environment and Books→ Project Components 創(chuàng)建文件組來管理啟動代碼、源程序和配置文件。 接下來的工作就是編譯連接工程了。單擊 Build Target 圖標可編譯連接工程文件,出現(xiàn)錯誤時,會在 Output Window 的 Build 頁中顯示錯誤和警告信息。也可以使用調試器來調試源程序,我們直接把程序下載到開發(fā)板 中進行目標調試。應用程序在調試通過后,需要生成 HEX 文件,用于下載到編程器或仿真器中。生成 HEX 文件后下載到目標設備中,至此嵌入式開發(fā)完成。 在此次設計中,我們 按照流程走到最后一步, 然后 在 MDK 中點擊 Flash→Download 下載代碼到 STM32F103 開發(fā)板中。用 USB 線連接電腦,查看設備管理器,看一看設備是否識別,驅動是否自動安裝成功。如果設備已經成功安裝,試用開發(fā)板的四個按鍵操縱鼠標箭頭。如果可以上下左右移動, 就表示 USB 鼠標設計 成功了。 河南城建學院本科畢業(yè)設計(論文) 第 4章 USB鼠標的實現(xiàn) 10 第 4 章 USB 鼠標的實現(xiàn) USB 簡易鼠標 的程序編寫 因為我們的 STM32F103 開發(fā)板上只有四個按 鍵,所以只能實現(xiàn)鼠標光標的上下左右移動,不能實現(xiàn)鼠標左右鍵的功能。由于 USB 協(xié)議及接口相當復雜, MDK 自帶的 STM32F10x 的固件庫中單獨提供了 USB 的相關函數庫,在編寫程序代碼時需要將兩個庫函數包含到編譯路徑中。 USB 鼠標的程序比較復雜,除了庫文件和 USB函數庫文件之外,還包含了 8 個源文件,其中 是啟動代碼,這里不再多說。下面是設計中非常重要的 7 個源文件 (具體的程序代碼見附錄 ): 該文件中主要包含 兩個函數,其中 main 函數初始化系統(tǒng)以及 USB 接口,之后不斷查詢四個按鍵是否按下。如果確定有按鍵按下則向 USB 緩沖器發(fā)出相關數據。Delay 函數用于延遲。 該文件中沒有任何函數,只是包含一些定義 USB 設備的描述符常數,由于 USB鼠標是一個標準的 USB 設備,所以相關的參數也比較容易得到。如果是開發(fā)非標準的 USB 設備的話,則必須開發(fā)相應的在電腦上運行的驅動軟件。 該文件 是用來控制 USB 中斷服務 用的 。 USB 中斷 的 情況 分很多種 , 在此次設計中我們 只是調用 文件中的 中斷 函數 。 該文件中只有一個函數,就是上面提到的用于 控制 USB 中斷的 USB_Istr 函數,此 函數 的 主要 作用 是對各類引起 USB 中斷的事件作輪詢處理。 該文件用于 控制 USB 協(xié)議 在設備中的具體實現(xiàn) ,例如初始化、 SETUP 包、 IN包、 OUT 包等等。 該文件中包含處理上電、掉電、掛起和喚醒事件的函數。 該文件包含系統(tǒng)配置的函數和處理四個按鍵動作的函數。其中 Set_USBClock函數用于配置 USB 端口時鐘; Set_System 函數用于配置時鐘、通用端口;USB_Cable_Config 函數配置 USB 電纜狀態(tài); USB_Interrupts_Config 函數用于配置 USB 中斷; JoyState 函數用于獲取按鍵狀態(tài); Joystick_Send 用于向 USB 端口河南城建學院本科畢業(yè)設計(論文) 第 4章 USB鼠標的實現(xiàn) 11 發(fā)送按鍵的事件。 HID 設備實現(xiàn)的重點在于枚舉是否成功,所以程序設計的重點在于標準描述符部分的編寫,因為枚舉過程就是檢查 USB 設備發(fā)送的 USB 標準請求能否正常返回的過程。 USB 協(xié)議規(guī)定了標準的設備請求為八個字節(jié)。這八字節(jié)在默認狀態(tài)下由控制端點零發(fā) 出,用在控制傳輸的建立過程中。任何 USB 設備都要能夠接收大于八字節(jié)的數據。 USB 協(xié)議規(guī)定了十一個標準請求,表 為各種請求的名字及代碼。 表 標準請求及代碼 標準請求 值 標準請求 值 GET_STATUS 0 GET_CONFIGURATION 8 CLEAR_FEATURE 1 SET_CONFIGURATION 9 SET_FEATURE 3 GET_INTERFACE 10 SET_ADDRESS 5 SET_INTERFACE 11 GET_DISCRIPTOR 6 SYNCH_FRAME 12 SET_DISCRIPTOR 7 其中獲取描述符請求 GET_DESCRIPTOR 在枚舉過程中用的最多。主機通過發(fā)送獲取描述符的請求獲取設備的各種描述符,這樣就可以得知設備的端點情況、設備類型等各種信息。表 是獲取描述符請求的結構。 表 獲取描述符請求的結構 bmRequestType bRequest wValue wIndex wLength 數據過程 0x80 0x06 描述符類型和索引 0 或語言 ID 描述符長度 描述符 在上表中的 wValue 這一項 中,低字節(jié)表示索引號,其具體的作用是在相同種類的描述符中確定一個描述符。它的高字節(jié),也就是第二字節(jié),用來描述類型編號。各種描述符的類型編號如表 所示。設備在收到描述符請求后,就會按照描述符類型的編號,返回對應的描述符。 wIndex 用在需要獲取字符串的過程中,可以用它來標明字符串的語言 ID 號,其他時候為零。 表 描述符類型及編號 類型 設備描述符 配置描述符 字符串描述符 接口描述符 端點描述符 編號 1 2 3 4 5 對于全速模式和低速模式,只有獲取設備、配置和字符串描述符這三種。在河南城建學院本科畢業(yè)設計(論文) 第 4章 USB鼠標的實現(xiàn) 12 返回配置描述符的時候,接口描述符和端點描述符要一起返回,這兩類描述符不能單獨請求返回。圖 是 HID 描述符的結構。 圖 HID描述符結構 USB 鼠標的運行 ①程序采用 JTAG 下載,將開發(fā)板通過下載器連接到電腦,并用一根 USB 數據線把開發(fā)板連接到電腦的 USB 上。 ②打開設計目錄下的 文件,編譯連接工程。 ③檢查無誤后,點擊“ Target Option”按鈕可查看芯片類型和下載方式,點擊“ Debug”設置完成后,在主界面點擊“ Download”下載。 ④重啟開發(fā)板。電腦會提示“找到新的 USB 設備”,因為是標準 USB 設備, 所電腦會自動安裝驅動。 ⑤分別控制開發(fā)板上的四個鍵,觀察電腦屏幕上鼠標光標的變化,如果光標隨按鍵按下移動,則表明程序運行成功,一個 USB 簡易鼠標就做好了。 硬件實現(xiàn) 圖 所示 為 設備管理器上顯示的已成功安裝的 USB 鼠標。 設備描述符 字符串描符 配置描述符 字符串描符 接口描述符 字符串描符 端點描述符 字符串描符 河南城建學院
點擊復制文檔內容
試題試卷相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1