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既可以設定為輸出也可以設定...