STM32 CubeMX
前言
STM32 CubeMX 自動(dòng)生成的USB_HID是鼠標(biāo)類型的:鍵盤類型要做一點(diǎn)小修改;
《鼠標(biāo)》
一、STM32 CubeMX 設(shè)置
USB時(shí)鐘設(shè)置
USB使能
UBS功能選擇
二、代碼部分
添加代碼
#include "usbd_hid.h"
extern USBD_HandleTypeDef hUsbDeviceFS;
uint8_t HID_biff[4];
HAL_Delay(1000);
USBD_HID_SendReport(&hUsbDeviceFS,HID_Mouse_buff,4);//按下鼠標(biāo)右鍵
HID_Mouse_buff[0]=0x08;//恒為1
HID_Mouse_buff[1]=10;//X+10
HID_Mouse_buff[2]=10;//Y+10
HID_Mouse_buff[3]=0; //鼠標(biāo)滑輪
鼠標(biāo)發(fā)送給PC的數(shù)據(jù)解析
數(shù)據(jù)格式
鼠標(biāo)發(fā)送給PC的數(shù)據(jù)每次4個(gè)字節(jié)
BYTE1 BYTE2 BYTE3 BYTE4
定義分別是:
BYTE1 –
|–bit7: 1 表示 Y 坐標(biāo)的變化量超出-256 ~ 255的范圍,0表示沒(méi)有溢出
|–bit6: 1 表示 X 坐標(biāo)的變化量超出-256 ~ 255的范圍,0表示沒(méi)有溢出
|–bit5: Y 坐標(biāo)變化的符號(hào)位,1表示負(fù)數(shù),即鼠標(biāo)向下移動(dòng)
|–bit4: X 坐標(biāo)變化的符號(hào)位,1表示負(fù)數(shù),即鼠標(biāo)向左移動(dòng)
|–bit3: 恒為1
|–bit2: 1表示中鍵按下
|–bit1: 1表示右鍵按下
|–bit0: 1表示左鍵按下
BYTE2 – X坐標(biāo)變化量,與byte的bit4組成9位符號(hào)數(shù),負(fù)數(shù)表示向左移,正數(shù)表右移。用補(bǔ)碼表示變化量
BYTE3 – Y坐標(biāo)變化量,與byte的bit5組成9位符號(hào)數(shù),負(fù)數(shù)表示向下移,正數(shù)表上移。用補(bǔ)碼表示變化量
BYTE4 – 滾輪變化。
BYTE1高5位是可以不用關(guān)注的,一般這5bit 在HID描述符中都是作為填充位使用,置0即可。
實(shí)驗(yàn)效果
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-633289.html
《鍵盤》
STM32 CubeMX 設(shè)置(同上)
代碼部分
參考:
STM32CubeMX學(xué)習(xí)筆記
USB鼠標(biāo)HID描述符以及數(shù)據(jù)格式文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-633289.html
到了這里,關(guān)于STM32 CubeMX USB_(HID 鼠標(biāo)和鍵盤)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!