使用USBHID模式与电脑、手机终端通讯,速率和准确率比虚拟串口和CH340转接速度要快。
在USB_OTG_FS中,选择Device_Only,其它默认。
在Middleware中的Class For FS IP中,如下选择
在Device Descriptor中可以按需要填写
设置USB频率为48Mhz
在Project Manager里,修改Heap和Stack的大小
在程序里main.c中,加入头文件和引用
#include "usbd_custom_hid_if.h"
extern USBD_HandleTypeDef hUsbDeviceFS;
在usbd_custom_hid_if.c中修改
/** Usb HID report descriptor. */
__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS[USBD_CUSTOM_HID_REPORT_DESC_SIZE] __ALIGN_END =
{
/* USER CODE BEGIN 0 */
0x05,0x8c, /* USAGE_PAGE (ST Page) */
0x09,0x01, /* USAGE (Demo Kit) */
0xa1,0x01, /* COLLECTION (Application) */
// The Input report
0x09,0x03, // USAGE ID - Vendor defined
0x15,0x00, // LOGICAL_MINIMUM (0)
0x26,0x00, 0xFF, // LOGICAL_MAXIMUM (255)
0x75,0x08, // REPORT_SIZE (8bit)
0x95,0x40, // REPORT_COUNT (64Byte)
0x81,0x02, // INPUT (Data,Var,Abs)
// The Output report
0x09,0x04, // USAGE ID - Vendor defined
0x15,0x00, // LOGICAL_MINIMUM (0)
0x26,0x00,0xFF, // LOGICAL_MAXIMUM (255)
0x75,0x08, // REPORT_SIZE (8bit)
0x95,0x40, // REPORT_COUNT (64Byte)
0x91,0x02, // OUTPUT (Data,Var,Abs)
/* USER CODE END 0 */
0xC0 /* END_COLLECTION */
};
USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS, SendBuff, 64); //发送函数,必须64字节
static int8_t CUSTOM_HID_OutEvent_FS(uint8_t event_idx, uint8_t state) //在usbd_custom_hid_if.c中的接收函数
static int8_t CUSTOM_HID_OutEvent_FS(uint8_t event_idx, uint8_t state)
{
/* USER CODE BEGIN 6 */
UNUSED(event_idx);
UNUSED(state);
uint8_t i,USB_Recive_Buffer[64];
USBD_CUSTOM_HID_HandleTypeDef *hhid = (USBD_CUSTOM_HID_HandleTypeDef *)(hUsbDeviceFS.pClassData);
for(i=0;i<64;i++)
{
USB_Recive_Buffer[i]=hhid->Report_buf[i]; //把接收到的数据送到自定义的缓存区保存(Report_buf[i]为USB的接收缓存区)
}
/* Start next USB packet transfer once data processing is completed */
USBD_CUSTOM_HID_ReceivePacket(&hUsbDeviceFS);
return (USBD_OK);
/* USER CODE END 6 */
}
使用USB调试助手
先查找USB,在下拉框中找到STM设备,便可进行通讯了。
以下是示例代码文章来源:https://www.toymoban.com/news/detail-503427.html
STM32F407代码文章来源地址https://www.toymoban.com/news/detail-503427.html
到了这里,关于STM32设置USB HID模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!