STM32 USB HID Mouse 基本功能

2021-10-02 10:20:59 字數 1497 閱讀 5664

usb device hid mouse功能, 實現基本的單擊,移動功能

目標平台: stm32f103zet  /  stm32f072rbh

cubemx版本: stm32cubemx 5.5.0

cubemx fw版本:stm32cube_fw_f1_v1.8.0 / stm32cube_fw_f0_v1.11.0

兩個平台在usb middleware 這個層面上的**是一致的。

如圖,usb device 很多硬體,包括官方的開發板上會有乙個使能管腳,注意此管腳的選通。f1系列mcu的dp管腳內建上拉,因此外部直連即可。

此平台使用的硬體,usb device連線到了乙個usb hub中,hub上有乙個enable 和 reset 需要選通。即pb8/pb9 需要拉高。

時鐘配置後,選擇usb device , 標準hid即可,然後直接生成**,就可以直接使用。兩個平台的cube配置基本無差別。

注意: stm32f072的工程中帶有bootloader的配置,因此如需測試此功能需要手動把bootloader配置關閉。

關閉的方法為在main函式中遮蔽iap_set()這個api  , 同時將irom1的起始位址設定為0x0800 0000

生成的報文描述符如下:

裝置為指標,指定按鍵占用3 bit ,  x y 的偏移量分別占用 8 bit (有符號)

對應滑鼠上報的hid訊息格式如下

/*

* buffer[0] | bit 0 - left button

* | bit 1 - right button

* buffer[1] | cursor movement x axis (signed from -127 to 127)

* buffer[2] | cursor movement y axis (signed from -127 to 127)

* buffer[3] | wheel vertical movement

* origin---------- x

| || | |

y */

**中預設為迴圈單擊,移動功能呼叫

user_hid_mouse_move

STM32 STM32啟動方式

在復位時,會按照boot的狀態判斷進入哪種模式,boot腳不用保持長狀態。模式1 boot0拉低,使用使用者快閃儲存器區,這是最正常啟動的模式,即,在正常啟動時,boot0應該下拉為低電平 模式3 從sram執行,由於stm32的flash擦寫的次數是有限的,所以為了保護我們的flash,延長mcu...

STM32 STM32 GPIO模式理解

stm32的gpio的配置模式有好幾種,包括 模擬輸入 浮空輸入 上拉輸入 下拉輸入 開漏輸出 推挽輸出 復用開漏輸出 復用推挽輸出 如圖是gpio的結構原理圖 1.模擬輸入 從上圖我們可以看到,我覺得模擬輸入最重要的一點就是,他不經過輸入資料暫存器,所以我們無法通過讀取輸入資料暫存器來獲取模擬輸入...

STM32 STM32學習記錄3 按鍵輸入

1 io配置 上拉輸入模式 區別在於沒有輸入訊號的時候預設輸入高電平 因為 有弱上拉 下拉輸入模式 區別在於沒有輸入訊號的時候預設輸入低電平 因為有弱下拉 對於浮空輸入模式顧名思義也就 是輸入什麼訊號才是什麼訊號,對於浮空輸入要保證有明確的輸入訊號。2 stm32的gpio既可以設定為輸出也可以設定...