STM32设置USB HID模式

这篇具有很好参考价值的文章主要介绍了STM32设置USB HID模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用USBHID模式与电脑、手机终端通讯,速率和准确率比虚拟串口和CH340转接速度要快。

在USB_OTG_FS中,选择Device_Only,其它默认。

STM32设置USB HID模式

在Middleware中的Class For FS IP中,如下选择

STM32设置USB HID模式

在Device Descriptor中可以按需要填写

STM32设置USB HID模式

设置USB频率为48Mhz

STM32设置USB HID模式

在Project Manager里,修改Heap和Stack的大小

STM32设置USB HID模式

在程序里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调试助手

STM32设置USB HID模式

 先查找USB,在下拉框中找到STM设备,便可进行通讯了。

以下是示例代码

STM32F407代码文章来源地址https://www.toymoban.com/news/detail-503427.html

到了这里,关于STM32设置USB HID模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32:Custom HID实现USB双向通信

    本文章主要讲了使用STM32的USB Device,实现控制板和电脑通信功能。从而实现,上位机对控制板进行调试。 USB Device可以有多种类型,实现双向通信的话,推荐使用Custom HID类型。 首先使用STM32CubeMx实现功能引脚配置并且生成对应的工程文件。   Middleware设置USB_DEVICE    配置时钟

    2024年02月13日
    浏览(45)
  • STM32 CubeMX USB_(HID 鼠标和键盘)

    STM32 CubeMX 自动生成的USB_HID是鼠标类型的:键盘类型要做一点小修改; 参考: STM32CubeMX学习笔记 USB鼠标HID描述符以及数据格式

    2024年02月14日
    浏览(38)
  • STM32 CubeMX配置USB HID功能,及安装路径

    STM32CubeMX学习笔记(46)——USB接口使用(HID自定义设备) STM32CubeMX实现STM32 USBHID双向64字节通信(下位机部分) STM32 USB HID设置(STM32CubeMX) 关于keil 5安装出现Fail to set path to Software Packs.问题解决方法

    2024年02月08日
    浏览(41)
  • STM32。USB HID,如何发送标准键盘的按键报告?

    我们要求STM32芯片的usb和windows电脑的USB接口进行连接,然后STM32芯片发送usb数据给windows电脑,实现电脑上按下一个f按键的效果。 下面开始操作: 使用STM32CubeMX生成代码,先选择对应的usb口 然后选择第三方软件,选择HID 然后点击生成代码,这时候就会生成usbd_hid.c相关的代码

    2024年02月12日
    浏览(49)
  • STM32利用USB的HID与QT上位机通信

      之前使用kingst的逻辑分析仪,打开上位机软件,插上带usb的硬件就可以通信,也不需要打开串口什么的,感觉很方便,于是借用一个周末研究下这个技术。本文主要是用于记录自己学习的过程,顺便分享下学习感悟。 首先初略说下大体是怎么回事,就是单片机使用hid功能需

    2024年02月07日
    浏览(44)
  • stm32 USB HID+CDC 鼠标键盘串口 组合设备配置解析

    查阅网上的博客与代码,很多都是关于USB的鼠标配置、USB的键盘配置、USB的虚拟串口配置,稍微深入一点的会将鼠标键盘合在一起,但移植起来就会报很多错误,要么是检测不到,要么是警告,这很正常,因为不理解这些数字代表着什么。但只要理解每个数字代表什么意思,

    2024年02月13日
    浏览(46)
  • 第10课【STM32 USB通讯协议实战】HID键盘+CDC虚拟串口组合设备

    文章中的部分概念可参考第9课【USB协议】USB总线 接口 端点 管道 数据包 枚举 STM32_USB-FS-Device_Lib V4.1.0 USB协议中为了提供对多样设备的支持,定义了许多外部设备子类,常见的包括: 人机交互类设备HID(Human Interface Device) 通信类设备CDC(Communicate Device Class) 大容量存储设备

    2024年02月04日
    浏览(65)
  • STM32CubeMX教程31 USB_DEVICE - HID外设_模拟键盘或鼠标

    正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) ST-LINK/V2驱动 野火DAP仿真器 XCOM V2.6串口助手 使用STM32CubeMX软件配置STM32F407开发板 USB_OTG_FS为工作在Human Interface Device Class (HID)(人机接口设备类)模式下的USB_DEVICE(USB从机),利用上下左右四

    2024年02月19日
    浏览(43)
  • stm32 USB复合设备 cubeMX库一键生成 多路CDC串口 HID鼠标键盘 Composite Device

    最近有个需求,需要同时用usb键盘鼠标和虚拟串口等,因为平时没怎么研究过usb协议,所以自己写复合设备一直没有成功,然后正巧在github上看到了一个stm32的一个usb复合设备库,可以快速配置usb组合设备,并且支持超级多路串口 Gihub地址 https://github.com/alambe94/I-CUBE-USBD-Compo

    2024年02月09日
    浏览(68)
  • fastboot模式下,电脑usb连接不上手机情况解决思路

                     .1.电脑桌面找到 此电脑 , 右键打开 管理         2.点击设备管理器         3.此时你会看到一个命名为Android Phone (注意:我这里已经是解决问题后的位置,但是方法不变)         4.在Android Phone内的功能中,右键点击会发现 更新驱动程序 选项,

    2024年04月11日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包