STM32F407的USB_HID 基礎配置
示例詳解: (參考 : https://blog.csdn.net/zhanglifu3601881/article/details/89675307)
工具:STM32CubeMX5.4
單片機:STM32F407VET6
一、硬件電路:
二、STM32CubeMX配置
外部晶振
燒錄接口
USB接口
HID模式,參數默認,後面程序裏改
時鐘樹配置
生成代碼文件位置,程序編譯環境選擇
STM32CubeMX5.4用的固件是STM32Cube FM_F4 V1.24.2
僅加入需要庫文件
外設文件生成單獨文件
配置完成,生成代碼,打開
編譯下載到單片機,然後通過USB線接入到PC,PC端顯示:
三、修改程序
1.加入設備描述符:
0x05, 0x8c, /* USAGE_PAGE (ST Page) /
0x09, 0x01, / USAGE (Demo Kit) /
0xa1, 0x01, / COLLECTION (Application) /
/ 6 */
// The Input report
0x09,0x03, // USAGE ID - Vendor defined
0x15,0x00, // LOGICAL_MINIMUM (0)
0x26,0x00, 0xFF, // LOGICAL_MAXIMUM (255)
0x75,0x08, // REPORT_SIZE (8)
0x95,CUSTOM_HID_EPIN_SIZE, //0x95,0x16, REPORT_COUNT (20)
0x81,0x02, // INPUT (Data,Var,Abs)
//19
// The Output report
0x09,0x04, // USAGE ID - Vendor defined
0x15,0x00, // LOGICAL_MINIMUM (0)
0x26,0x00,0xFF, // LOGICAL_MAXIMUM (255)
0x75,0x08, // REPORT_SIZE (8)
0x95,CUSTOM_HID_EPOUT_SIZE, //0x95,0x16, REPORT_COUNT (20)
0x91,0x02, // OUTPUT (Data,Var,Abs)
//32
2.修改HID數據字節,其中USBD_CUSTOM_HID_REPORT_DESC_SIZE 33U 是前面描述符的字節數
3.修改發送接收數據長度,改成64字節
四、配置完成
更改完成,編譯下載,這時PC端顯示OK
源代碼已上傳我的公開資源